From 958a9386c6440bd0fabf7bb3c6b3a9e44689ed02 Mon Sep 17 00:00:00 2001 From: Sebastian Imlay Date: Sat, 21 Dec 2019 19:57:00 -0800 Subject: [PATCH 1/2] This is a stub of the iOS clipboard logic. --- src/lib.rs | 2 ++ src/platform/not_linux.rs | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 4cc5afe..fb8e5e0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2,6 +2,7 @@ unix, not(any( target_os = "macos", + target_os = "ios", target_os = "android", target_os = "emscripten" )) @@ -12,6 +13,7 @@ mod platform; #[cfg(not(all( unix, not(any( + target_os = "ios", target_os = "macos", target_os = "android", target_os = "emscripten" diff --git a/src/platform/not_linux.rs b/src/platform/not_linux.rs index eb5d15d..fd3d627 100644 --- a/src/platform/not_linux.rs +++ b/src/platform/not_linux.rs @@ -15,6 +15,11 @@ pub fn new_clipboard( { Ok(Box::new(clipboard_macos::Clipboard::new()?)) } + + #[cfg(target_os = "ios")] + { + Ok(Box::new(clipboard_ios::Clipboard::new()?)) + } } #[cfg(target_os = "windows")] @@ -30,3 +35,22 @@ impl ClipboardProvider for clipboard_macos::Clipboard { self.read() } } + + +#[cfg(target_os = "ios")] +mod clipboard_ios { + use std::error::Error; + pub struct Clipboard; + impl Clipboard { + pub fn new() -> Result> { + Ok(Self) + } + } +} + +#[cfg(target_os = "ios")] +impl ClipboardProvider for clipboard_ios::Clipboard { + fn read(&self) -> Result> { + unimplemented!(); + } +} From af3d03db753aa2118a79be882652ef70ff0e5634 Mon Sep 17 00:00:00 2001 From: Sebastian Imlay Date: Sat, 22 Feb 2020 09:18:47 -0800 Subject: [PATCH 2/2] Added iOSClipboardError --- src/platform/not_linux.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/platform/not_linux.rs b/src/platform/not_linux.rs index fd3d627..17d668e 100644 --- a/src/platform/not_linux.rs +++ b/src/platform/not_linux.rs @@ -46,11 +46,22 @@ mod clipboard_ios { Ok(Self) } } + #[derive(Debug)] + #[allow(non_camel_case_types)] + pub enum iOSClipboardError { + Unimplemented, + } + impl std::fmt::Display for iOSClipboardError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "Unimplemented") + } + } + impl Error for iOSClipboardError { } } #[cfg(target_os = "ios")] impl ClipboardProvider for clipboard_ios::Clipboard { fn read(&self) -> Result> { - unimplemented!(); + Err(Box::new(clipboard_ios::iOSClipboardError::Unimplemented)) } }