refactor: add type that hides the platform clipboard
This commit is contained in:
parent
886f430414
commit
5dd795d463
4 changed files with 15 additions and 13 deletions
10
src/lib.rs
10
src/lib.rs
|
|
@ -52,16 +52,18 @@ use mime::{ClipboardLoadData, ClipboardStoreData};
|
|||
use raw_window_handle::HasDisplayHandle;
|
||||
use std::error::Error;
|
||||
|
||||
pub struct Clipboard<C> {
|
||||
pub type Clipboard = PlatformClipboard<platform::Clipboard>;
|
||||
|
||||
pub struct PlatformClipboard<C> {
|
||||
raw: C,
|
||||
}
|
||||
|
||||
impl Clipboard<platform::Clipboard> {
|
||||
impl PlatformClipboard<platform::Clipboard> {
|
||||
/// Safety: the display handle must be valid for the lifetime of `Clipboard`
|
||||
pub unsafe fn connect<W: HasDisplayHandle>(
|
||||
window: &W,
|
||||
) -> Result<Self, Box<dyn Error>> {
|
||||
Ok(Clipboard {
|
||||
Ok(PlatformClipboard {
|
||||
raw: platform::connect(window)?,
|
||||
})
|
||||
}
|
||||
|
|
@ -75,7 +77,7 @@ impl Clipboard<platform::Clipboard> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<C: ClipboardProvider> Clipboard<C> {
|
||||
impl<C: ClipboardProvider> PlatformClipboard<C> {
|
||||
pub fn read_primary(&self) -> Option<Result<String, Box<dyn Error>>> {
|
||||
self.raw.read_primary()
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue