2020-08-12 20:58:22 +08:00
|
|
|
use crate::ClipboardProvider;
|
|
|
|
|
|
2024-01-16 21:28:25 -08:00
|
|
|
use raw_window_handle::HasDisplayHandle;
|
2020-08-12 20:58:22 +08:00
|
|
|
use std::error::Error;
|
|
|
|
|
|
2024-01-16 21:28:25 -08:00
|
|
|
pub fn connect<W: HasDisplayHandle>(
|
2020-08-12 20:58:22 +08:00
|
|
|
_window: &W,
|
|
|
|
|
) -> Result<Box<dyn ClipboardProvider>, Box<dyn Error>> {
|
|
|
|
|
Ok(Box::new(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 AndroidClipboardError {
|
|
|
|
|
Unimplemented,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl std::fmt::Display for AndroidClipboardError {
|
|
|
|
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
|
|
|
write!(f, "Unimplemented")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Error for AndroidClipboardError {}
|
|
|
|
|
|
|
|
|
|
impl ClipboardProvider for Clipboard {
|
|
|
|
|
fn read(&self) -> Result<String, Box<dyn Error>> {
|
|
|
|
|
Err(Box::new(AndroidClipboardError::Unimplemented))
|
|
|
|
|
}
|
2021-03-06 04:34:02 +01:00
|
|
|
|
|
|
|
|
fn write(&mut self, contents: String) -> Result<(), Box<dyn Error>> {
|
|
|
|
|
Err(Box::new(AndroidClipboardError::Unimplemented))
|
|
|
|
|
}
|
2020-08-12 20:58:22 +08:00
|
|
|
}
|