Struct undo::Any

source ·
pub struct Any<T, O> { /* private fields */ }
Expand description

Any action type.

This allows you to use multiple types of actions at the same time as long as they all share the same target and output type.

Examples

let mut target = String::new();
let mut record = Record::new();

record.apply(&mut target, Any::new(Push('a')));
record.apply(&mut target, Any::new(FromFn::new(|s: &mut String| s.push('b'))));
assert_eq!(target, "ab");

Implementations§

source§

impl<T, O> Any<T, O>

source

pub fn new<A>(action: A) -> Any<T, O>where A: Action<Target = T, Output = O> + 'static,

Creates an Any from the provided action.

source

pub fn set_string(&mut self, str: impl Into<String>)

Sets the display message of this action.

Trait Implementations§

source§

impl<T, O> Action for Any<T, O>

§

type Target = T

The target type.
§

type Output = O

The output type.
source§

fn apply(&mut self, target: &mut Self::Target) -> Self::Output

Applies the action on the target.
source§

fn undo(&mut self, target: &mut Self::Target) -> Self::Output

Restores the state of the target as it was before the action was applied.
source§

fn redo(&mut self, target: &mut Self::Target) -> Self::Output

Reapplies the action on the target. Read more
source§

fn merge(&mut self, other: Self) -> Merged<Self>where Self: Sized,

Used for manual merging of actions. See Merged for more information.
source§

impl<T, O> Debug for Any<T, O>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T, O> Display for Any<T, O>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T, O> !RefUnwindSafe for Any<T, O>

§

impl<T, O> !Send for Any<T, O>

§

impl<T, O> !Sync for Any<T, O>

§

impl<T, O> Unpin for Any<T, O>

§

impl<T, O> !UnwindSafe for Any<T, O>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.