Remove clipboard_windows and simplify modules
This commit is contained in:
parent
8161059964
commit
f697ee10bd
10 changed files with 100 additions and 350 deletions
20
src/lib.rs
20
src/lib.rs
|
|
@ -10,16 +10,16 @@
|
|||
#[path = "platform/linux.rs"]
|
||||
mod platform;
|
||||
|
||||
#[cfg(not(all(
|
||||
unix,
|
||||
not(any(
|
||||
target_os = "ios",
|
||||
target_os = "macos",
|
||||
target_os = "android",
|
||||
target_os = "emscripten"
|
||||
))
|
||||
)))]
|
||||
#[path = "platform/not_linux.rs"]
|
||||
#[cfg(target_os = "windows")]
|
||||
#[path = "platform/windows.rs"]
|
||||
mod platform;
|
||||
|
||||
#[cfg(target_os = "macos")]
|
||||
#[path = "platform/macos.rs"]
|
||||
mod platform;
|
||||
|
||||
#[cfg(target_os = "ios")]
|
||||
#[path = "platform/ios.rs"]
|
||||
mod platform;
|
||||
|
||||
use raw_window_handle::HasRawWindowHandle;
|
||||
|
|
|
|||
38
src/platform/ios.rs
Normal file
38
src/platform/ios.rs
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
use crate::ClipboardProvider;
|
||||
|
||||
use raw_window_handle::HasRawWindowHandle;
|
||||
use std::error::Error;
|
||||
|
||||
pub fn new_clipboard<W: HasRawWindowHandle>(
|
||||
_window: &W,
|
||||
) -> Result<Box<dyn ClipboardProvider>, Box<dyn Error>> {
|
||||
Ok(Box::new(clipboard_ios::Clipboard::new()?))
|
||||
}
|
||||
|
||||
pub struct Clipboard;
|
||||
|
||||
impl Clipboard {
|
||||
pub fn new() -> Result<Clipboard, Box<dyn Error>> {
|
||||
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 {}
|
||||
|
||||
impl ClipboardProvider for clipboard_ios::Clipboard {
|
||||
fn read(&self) -> Result<String, Box<dyn Error>> {
|
||||
Err(Box::new(clipboard_ios::iOSClipboardError::Unimplemented))
|
||||
}
|
||||
}
|
||||
16
src/platform/macos.rs
Normal file
16
src/platform/macos.rs
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
use crate::ClipboardProvider;
|
||||
|
||||
use raw_window_handle::HasRawWindowHandle;
|
||||
use std::error::Error;
|
||||
|
||||
pub fn new_clipboard<W: HasRawWindowHandle>(
|
||||
_window: &W,
|
||||
) -> Result<Box<dyn ClipboardProvider>, Box<dyn Error>> {
|
||||
Ok(Box::new(clipboard_macos::Clipboard::new()?))
|
||||
}
|
||||
|
||||
impl ClipboardProvider for clipboard_macos::Clipboard {
|
||||
fn read(&self) -> Result<String, Box<dyn Error>> {
|
||||
self.read()
|
||||
}
|
||||
}
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
use crate::ClipboardProvider;
|
||||
|
||||
use raw_window_handle::HasRawWindowHandle;
|
||||
use std::error::Error;
|
||||
|
||||
pub fn new_clipboard<W: HasRawWindowHandle>(
|
||||
_window: &W,
|
||||
) -> Result<Box<dyn ClipboardProvider>, Box<dyn Error>> {
|
||||
#[cfg(target_os = "windows")]
|
||||
{
|
||||
Ok(Box::new(clipboard_windows::Clipboard::new()?))
|
||||
}
|
||||
|
||||
#[cfg(target_os = "macos")]
|
||||
{
|
||||
Ok(Box::new(clipboard_macos::Clipboard::new()?))
|
||||
}
|
||||
|
||||
#[cfg(target_os = "ios")]
|
||||
{
|
||||
Ok(Box::new(clipboard_ios::Clipboard::new()?))
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(target_os = "windows")]
|
||||
impl ClipboardProvider for clipboard_windows::Clipboard {
|
||||
fn read(&self) -> Result<String, Box<dyn Error>> {
|
||||
self.read()
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(target_os = "macos")]
|
||||
impl ClipboardProvider for clipboard_macos::Clipboard {
|
||||
fn read(&self) -> Result<String, Box<dyn Error>> {
|
||||
self.read()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#[cfg(target_os = "ios")]
|
||||
mod clipboard_ios {
|
||||
use std::error::Error;
|
||||
pub struct Clipboard;
|
||||
impl Clipboard {
|
||||
pub fn new() -> Result<Clipboard, Box<dyn Error>> {
|
||||
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<String, Box<dyn Error>> {
|
||||
Err(Box::new(clipboard_ios::iOSClipboardError::Unimplemented))
|
||||
}
|
||||
}
|
||||
18
src/platform/windows.rs
Normal file
18
src/platform/windows.rs
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
use crate::ClipboardProvider;
|
||||
|
||||
use raw_window_handle::HasRawWindowHandle;
|
||||
use clipboard_win::{get_clipboard_string, set_clipboard_string};
|
||||
use std::error::Error;
|
||||
|
||||
pub fn new_clipboard<W: HasRawWindowHandle>(
|
||||
_window: &W,
|
||||
) -> Result<Box<dyn ClipboardProvider>, Box<dyn Error>> {
|
||||
Ok(Box::new(clipboard_windows::Clipboard::new()?))
|
||||
}
|
||||
|
||||
impl ClipboardProvider for clipboard_windows::Clipboard {
|
||||
fn fn read(&self) -> Result<String, Box<dyn Error>> {
|
||||
Ok(get_clipboard_string()?)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue