From 20e7cbedf547490ea005e311e3dcad48fe9a59c0 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Thu, 14 Mar 2024 17:19:32 -0400 Subject: [PATCH] chore: add more impls of clipboard methods --- mime/src/lib.rs | 10 ++++++++++ src/lib.rs | 50 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/mime/src/lib.rs b/mime/src/lib.rs index 78a2303..4517102 100644 --- a/mime/src/lib.rs +++ b/mime/src/lib.rs @@ -27,6 +27,16 @@ pub trait AsMimeTypes { fn as_bytes(&self, mime_type: &str) -> Option>; } +impl AsMimeTypes for Box { + fn available(&self) -> Cow<'static, [String]> { + self.as_ref().available() + } + + fn as_bytes(&self, mime_type: &str) -> Option> { + self.as_ref().as_bytes(mime_type) + } +} + /// Data that can be stored to the clipboard. pub struct ClipboardStoreData { /// Clipboard data. diff --git a/src/lib.rs b/src/lib.rs index 3da6d3e..421b3a1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -88,6 +88,56 @@ impl PlatformClipboard { ) -> Option>> { self.raw.write_primary(contents) } + + pub fn read_data(&self) -> Option>> + where + T: mime::AllowedMimeTypes, + { + self.raw.read_data() + } + + pub fn write_data( + &mut self, + contents: ClipboardStoreData, + ) -> Option>> + where + T: mime::AsMimeTypes, + { + self.raw.write_data(contents) + } + + pub fn read_primary_data( + &self, + ) -> Option>> + where + T: mime::AllowedMimeTypes, + { + self.raw.read_primary_data() + } + + pub fn read_primary_raw( + &self, + allowed: Vec, + ) -> Option, String), Box>> { + self.raw.read_primary_raw(allowed) + } + + pub fn read_raw( + &self, + allowed: Vec, + ) -> Option, String), Box>> { + self.raw.read_raw(allowed) + } + + pub fn write_primary_data( + &mut self, + contents: ClipboardStoreData, + ) -> Option>> + where + T: mime::AsMimeTypes, + { + self.raw.write_primary_data(contents) + } } pub trait ClipboardProvider {