pub enum EditTree<T> {
MatchNode {
pre: usize,
suf: usize,
left: Option<Box<EditTree<T>>>,
right: Option<Box<EditTree<T>>>,
},
ReplaceNode {
replacee: Vec<T>,
replacement: Vec<T>,
},
}
Expand description
Enum representing either a EditTree::MatchNode with a prefix and suffix length or a EditTree::ReplaceNode describing a replace operation.
Variants
MatchNode
ReplaceNode
Implementations
sourceimpl<T> EditTree<T> where
T: PartialEq + Eq + Clone,
impl<T> EditTree<T> where
T: PartialEq + Eq + Clone,
sourcepub fn create_tree(a: &[T], b: &[T]) -> Option<Self>
pub fn create_tree(a: &[T], b: &[T]) -> Option<Self>
Returns a edit tree specifying how to derive b
from a
.
Caution: when using with stringy types. UTF-8 multi byte chars will not be treated well. Consider passing in &char instead.
sourcepub fn pretty_print(&self, format_vec: impl Fn(&[T]) -> String + Copy) -> String
pub fn pretty_print(&self, format_vec: impl Fn(&[T]) -> String + Copy) -> String
Returns a s-String representation of the EditTree.
format_vec
defines how to transform the Vec<T>
of a ReplaceNode
into a
String
. This is useful when implementing Display
for your own types where
conversion to String
may not be straight forward.
Trait Implementations
sourceimpl<'de, T> Deserialize<'de> for EditTree<T> where
T: Deserialize<'de>,
impl<'de, T> Deserialize<'de> for EditTree<T> where
T: Deserialize<'de>,
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl<T: Eq> Eq for EditTree<T>
impl<T> StructuralEq for EditTree<T>
impl<T> StructuralPartialEq for EditTree<T>
Auto Trait Implementations
impl<T> RefUnwindSafe for EditTree<T> where
T: RefUnwindSafe,
impl<T> Send for EditTree<T> where
T: Send,
impl<T> Sync for EditTree<T> where
T: Sync,
impl<T> Unpin for EditTree<T> where
T: Unpin,
impl<T> UnwindSafe for EditTree<T> where
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more