use clipboard_win::{empty, get_clipboard_string, set_clipboard_string, Clipboard};
use crate::common::ClipboardProvider;
use crate::Result;
pub struct WindowsClipboardContext;
impl ClipboardProvider for WindowsClipboardContext {
fn new() -> Result<Self> {
Ok(WindowsClipboardContext)
}
fn get_contents(&mut self) -> Result<String> {
Ok(get_clipboard_string()?)
}
fn set_contents(&mut self, data: String) -> Result<()> {
Ok(set_clipboard_string(&data)?)
}
fn clear(&mut self) -> Result<()> {
let _clip = Clipboard::new_attempts(10)?;
Ok(empty()?)
}
}