window_clipboard/src/platform/windows.rs
2021-03-07 03:25:51 +01:00

24 lines
596 B
Rust

use crate::ClipboardProvider;
use clipboard_win::{get_clipboard_string, set_clipboard_string};
use raw_window_handle::HasRawWindowHandle;
use std::error::Error;
pub fn connect<W: HasRawWindowHandle>(
_window: &W,
) -> Result<Box<dyn ClipboardProvider>, Box<dyn Error>> {
Ok(Box::new(Clipboard))
}
pub struct Clipboard;
impl ClipboardProvider for Clipboard {
fn read(&self) -> Result<String, Box<dyn Error>> {
Ok(get_clipboard_string()?)
}
fn write(&mut self, contents: String) -> Result<(), Box<dyn Error>> {
Ok(set_clipboard_string(&contents)?)
}
}