window_clipboard/src/platform/android.rs
Ian Douglas Scott 869737dadc Use HasDisplayHandle instead of deprecated HasRawDisplayHandle
Currently `connect` is unsafe because it doesn't take ownership of the
display or have a lifetime bound.
2024-01-16 21:37:13 -08:00

42 lines
984 B
Rust

use crate::ClipboardProvider;
use raw_window_handle::HasDisplayHandle;
use std::error::Error;
pub fn connect<W: HasDisplayHandle>(
_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))
}
fn write(&mut self, contents: String) -> Result<(), Box<dyn Error>> {
Err(Box::new(AndroidClipboardError::Unimplemented))
}
}