Write missing docs and Debug implementations for native
This commit is contained in:
parent
7cb6e7438f
commit
2c630809d4
4 changed files with 51 additions and 2 deletions
|
|
@ -1,4 +1,5 @@
|
|||
//! Access the clipboard.
|
||||
use std::fmt;
|
||||
|
||||
/// A buffer for short-term storage and transfer within and between
|
||||
/// applications.
|
||||
|
|
@ -22,12 +23,19 @@ impl Clipboard for Null {
|
|||
fn write(&mut self, _contents: String) {}
|
||||
}
|
||||
|
||||
/// A clipboard action to be performed by some [`Command`].
|
||||
///
|
||||
/// [`Command`]: crate::Command
|
||||
pub enum Action<T> {
|
||||
/// Read the clipboard and produce `T` with the result.
|
||||
Read(Box<dyn Fn(Option<String>) -> T>),
|
||||
|
||||
/// Write the given contents to the clipboard.
|
||||
Write(String),
|
||||
}
|
||||
|
||||
impl<T> Action<T> {
|
||||
/// Maps the output of a clipboard [`Action`] using the provided closure.
|
||||
pub fn map<A>(self, f: impl Fn(T) -> A + 'static + Send + Sync) -> Action<A>
|
||||
where
|
||||
T: 'static,
|
||||
|
|
@ -38,3 +46,12 @@ impl<T> Action<T> {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<T> fmt::Debug for Action<T> {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
match self {
|
||||
Self::Read(_) => write!(f, "Action::Read"),
|
||||
Self::Write(_) => write!(f, "Action::Write"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue