use crate::model::Cmd;
use std::fmt;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct ClipboardMsg {
pub content: String,
pub selection: u8,
}
impl ClipboardMsg {
pub fn clipboard(&self) -> u8 {
self.selection
}
}
impl fmt::Display for ClipboardMsg {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{}", self.content)
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct SetClipboardMsg(pub String);
pub fn set_clipboard(s: &str) -> Cmd {
let text = s.to_string();
Some(Box::new(move || Some(Box::new(SetClipboardMsg(text)))))
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct ReadClipboardMsg;
pub fn read_clipboard() -> Cmd {
Some(Box::new(|| Some(Box::new(ReadClipboardMsg))))
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct SetPrimaryClipboardMsg(pub String);
pub fn set_primary_clipboard(s: &str) -> Cmd {
let text = s.to_string();
Some(Box::new(move || {
Some(Box::new(SetPrimaryClipboardMsg(text)))
}))
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct ReadPrimaryClipboardMsg;
pub fn read_primary_clipboard() -> Cmd {
Some(Box::new(|| Some(Box::new(ReadPrimaryClipboardMsg))))
}