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.
|
//! Access the clipboard.
|
||||||
|
use std::fmt;
|
||||||
|
|
||||||
/// A buffer for short-term storage and transfer within and between
|
/// A buffer for short-term storage and transfer within and between
|
||||||
/// applications.
|
/// applications.
|
||||||
|
|
@ -22,12 +23,19 @@ impl Clipboard for Null {
|
||||||
fn write(&mut self, _contents: String) {}
|
fn write(&mut self, _contents: String) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// A clipboard action to be performed by some [`Command`].
|
||||||
|
///
|
||||||
|
/// [`Command`]: crate::Command
|
||||||
pub enum Action<T> {
|
pub enum Action<T> {
|
||||||
|
/// Read the clipboard and produce `T` with the result.
|
||||||
Read(Box<dyn Fn(Option<String>) -> T>),
|
Read(Box<dyn Fn(Option<String>) -> T>),
|
||||||
|
|
||||||
|
/// Write the given contents to the clipboard.
|
||||||
Write(String),
|
Write(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<T> Action<T> {
|
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>
|
pub fn map<A>(self, f: impl Fn(T) -> A + 'static + Send + Sync) -> Action<A>
|
||||||
where
|
where
|
||||||
T: 'static,
|
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"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
|
//! Run asynchronous actions.
|
||||||
mod action;
|
mod action;
|
||||||
|
|
||||||
pub use action::Action;
|
pub use action::Action;
|
||||||
|
|
||||||
|
use std::fmt;
|
||||||
use std::future::Future;
|
use std::future::Future;
|
||||||
|
|
||||||
/// A set of asynchronous actions to be performed by some runtime.
|
/// A set of asynchronous actions to be performed by some runtime.
|
||||||
|
|
@ -60,3 +62,11 @@ impl<T> Command<T> {
|
||||||
command.actions()
|
command.actions()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<T> fmt::Debug for Command<T> {
|
||||||
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
|
let Command(command) = self;
|
||||||
|
|
||||||
|
command.fmt(f)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,19 @@
|
||||||
use crate::clipboard;
|
use crate::clipboard;
|
||||||
use crate::window;
|
use crate::window;
|
||||||
|
|
||||||
|
use std::fmt;
|
||||||
|
|
||||||
|
/// An action that a [`Command`] can perform.
|
||||||
|
///
|
||||||
|
/// [`Command`]: crate::Command
|
||||||
pub enum Action<T> {
|
pub enum Action<T> {
|
||||||
|
/// Run a [`Future`] to completion.
|
||||||
Future(iced_futures::BoxFuture<T>),
|
Future(iced_futures::BoxFuture<T>),
|
||||||
|
|
||||||
|
/// Run a clipboard action.
|
||||||
Clipboard(clipboard::Action<T>),
|
Clipboard(clipboard::Action<T>),
|
||||||
|
|
||||||
|
/// Run a window action.
|
||||||
Window(window::Action),
|
Window(window::Action),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -22,3 +32,15 @@ impl<T> Action<T> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<T> fmt::Debug for Action<T> {
|
||||||
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
|
match self {
|
||||||
|
Self::Future(_) => write!(f, "Action::Future"),
|
||||||
|
Self::Clipboard(action) => {
|
||||||
|
write!(f, "Action::Clipboard({:?})", action)
|
||||||
|
}
|
||||||
|
Self::Window(action) => write!(f, "Action::Window({:?})", action),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,8 @@
|
||||||
//! [`druid`]: https://github.com/xi-editor/druid
|
//! [`druid`]: https://github.com/xi-editor/druid
|
||||||
//! [`raw-window-handle`]: https://github.com/rust-windowing/raw-window-handle
|
//! [`raw-window-handle`]: https://github.com/rust-windowing/raw-window-handle
|
||||||
//! [renderer]: crate::renderer
|
//! [renderer]: crate::renderer
|
||||||
//#![deny(missing_docs)]
|
#![deny(missing_docs)]
|
||||||
//#![deny(missing_debug_implementations)]
|
#![deny(missing_debug_implementations)]
|
||||||
#![deny(unused_results)]
|
#![deny(unused_results)]
|
||||||
#![forbid(unsafe_code)]
|
#![forbid(unsafe_code)]
|
||||||
#![forbid(rust_2018_idioms)]
|
#![forbid(rust_2018_idioms)]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue