[][src]Function undo::with_merge

pub fn with_merge<A>(command: A, merge: Merge) -> WithMerge<A>

Creates a command wrapper with the specified merge behavior.

Examples

let mut record = Record::default();
let a = from_fn(|s: &mut String| s.push('a'));
let b = from_fn(|s: &mut String| s.push('b'));
let a = a.with_merge(Merge::If(0));
let b = b.with_merge(Merge::If(0));
record.apply(a)?;
record.apply(b)?;
assert_eq!(record.target(), "ab");
record.undo()?;
assert_eq!(record.target(), "");
record.redo()?;
assert_eq!(record.target(), "ab");