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 {