pub struct Pattern(/* private fields */);Expand description
A sequence of operations defining a pattern.
Implementations§
Source§impl Pattern
impl Pattern
Sourcepub fn new(elems: Vec<PatternElem>) -> Self
pub fn new(elems: Vec<PatternElem>) -> Self
Constructs a new pattern given a vector of operations.
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
Sourcepub fn extend_each<T>(&self, iter: T) -> Vec<Self>where
T: Iterator<Item = PatternElem>,
pub fn extend_each<T>(&self, iter: T) -> Vec<Self>where
T: Iterator<Item = PatternElem>,
Appends each of the items in iter to the pattern separately, returning a vector of
patterns.
let pat = pat![Plus(3), Mult(2)];
let pats = pat.extend_each(vec![Div(2), Div(3)].into_iter());
assert_eq!(pats, vec![pat![Plus(3), Mult(2), Div(2)], pat![Plus(3), Mult(2), Div(3)]]);pub fn iter(&self) -> Iter<'_, PatternElem>
pub fn has_repeating_types(&self) -> bool
Trait Implementations§
Source§impl FromIterator<PatternElem> for Pattern
impl FromIterator<PatternElem> for Pattern
Source§fn from_iter<I: IntoIterator<Item = PatternElem>>(iterator: I) -> Self
fn from_iter<I: IntoIterator<Item = PatternElem>>(iterator: I) -> Self
Creates a value from an iterator. Read more
Source§impl IntoIterator for Pattern
impl IntoIterator for Pattern
Source§impl Ord for Pattern
impl Ord for Pattern
Source§impl PartialOrd for Pattern
impl PartialOrd for Pattern
impl Eq for Pattern
impl StructuralPartialEq for Pattern
Auto Trait Implementations§
impl Freeze for Pattern
impl RefUnwindSafe for Pattern
impl Send for Pattern
impl Sync for Pattern
impl Unpin for Pattern
impl UnwindSafe for Pattern
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more