ferroui_base/input/platform/
platform_clipboard_manager.rs1use super::{ClipboardType, IClipboard, IPlatformClipboardManagerImpl};
2use std::rc::Rc;
3
4pub struct PlatformClipboardManager {
6 clipboard: Option<Rc<dyn IClipboard>>,
7 primary_selection: Option<Rc<dyn IClipboard>>,
8}
9
10impl PlatformClipboardManager {
11 pub fn new(clipboard: Option<Rc<dyn IClipboard>>, primary_selection: Option<Rc<dyn IClipboard>>) -> Self {
14 Self { clipboard, primary_selection }
15 }
16}
17
18impl IPlatformClipboardManagerImpl for PlatformClipboardManager {
19 fn try_get_clipboard(&self, type_: ClipboardType) -> Option<Rc<dyn IClipboard>> {
20 match type_ {
21 ClipboardType::Default => self.clipboard.clone(),
22 ClipboardType::PrimarySelection => self.primary_selection.clone(),
23 }
24 }
25}