Skip to content

Commit

Permalink
Write missing docs and Debug implementations in native
Browse files Browse the repository at this point in the history
  • Loading branch information
hecrj committed Sep 13, 2021
1 parent 7cb6e74 commit a77beaf
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 2 deletions.
17 changes: 17 additions & 0 deletions native/src/clipboard.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
//! Access the clipboard.
use std::fmt;

/// A buffer for short-term storage and transfer within and between
/// applications.
Expand All @@ -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,
Expand All @@ -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"),
}
}
}
10 changes: 10 additions & 0 deletions native/src/command.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
//! Run asynchronous actions.
mod action;

pub use action::Action;

use std::fmt;
use std::future::Future;

/// A set of asynchronous actions to be performed by some runtime.
Expand Down Expand Up @@ -60,3 +62,11 @@ impl<T> Command<T> {
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)
}
}
22 changes: 22 additions & 0 deletions native/src/command/action.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
use crate::clipboard;
use crate::window;

use std::fmt;

/// An action that a [`Command`] can perform.
///
/// [`Command`]: crate::Command
pub enum Action<T> {
/// Run a [`Future`] to completion.
Future(iced_futures::BoxFuture<T>),

/// Run a clipboard action.
Clipboard(clipboard::Action<T>),

/// Run a window action.
Window(window::Action),
}

Expand All @@ -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),
}
}
}
4 changes: 2 additions & 2 deletions native/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@
//! [`druid`]: https://github.com/xi-editor/druid
//! [`raw-window-handle`]: https://github.com/rust-windowing/raw-window-handle
//! [renderer]: crate::renderer
//#![deny(missing_docs)]
//#![deny(missing_debug_implementations)]
#![deny(missing_docs)]
#![deny(missing_debug_implementations)]
#![deny(unused_results)]
#![forbid(unsafe_code)]
#![forbid(rust_2018_idioms)]
Expand Down

0 comments on commit a77beaf

Please sign in to comment.