Trait BoundPattern

Source
pub trait BoundPattern<N: Clone + PartialEq> {
    // Required methods
    fn pattern_eq(&self, other: &Self) -> bool;
    fn close_pattern(&mut self, state: ScopeState, on_free: &impl OnFreeFn<N>);
    fn open_pattern(&mut self, state: ScopeState, on_bound: &impl OnBoundFn<N>);
    fn visit_vars(&self, on_var: &mut impl FnMut(&Var<N>));
    fn visit_mut_vars(&mut self, on_var: &mut impl FnMut(&mut Var<N>));
    fn visit_binders(&self, on_binder: &mut impl FnMut(&Binder<N>));
    fn visit_mut_binders(&mut self, on_binder: &mut impl FnMut(&mut Binder<N>));

    // Provided methods
    fn free_vars(&self) -> HashSet<FreeVar<N>>
       where N: Eq + Hash + Clone { ... }
    fn binders(&self) -> Vec<Binder<N>>
       where N: Clone { ... }
}
Expand description

Patterns that bind variables in terms

Required Methods§

Source

fn pattern_eq(&self, other: &Self) -> bool

Alpha equivalence for patterns

Source

fn close_pattern(&mut self, state: ScopeState, on_free: &impl OnFreeFn<N>)

Close the terms in the pattern using the supplied binders

Source

fn open_pattern(&mut self, state: ScopeState, on_bound: &impl OnBoundFn<N>)

Open the terms in the pattern using the supplied binders

Source

fn visit_vars(&self, on_var: &mut impl FnMut(&Var<N>))

Visit each variable in the term, calling the on_var callback on each of them in turn

Source

fn visit_mut_vars(&mut self, on_var: &mut impl FnMut(&mut Var<N>))

Visit each variable in the term, calling the on_var callback on each of them in turn

Source

fn visit_binders(&self, on_binder: &mut impl FnMut(&Binder<N>))

Visit each of the binders in the term, calling the on_binder callback on each of them in turn

Source

fn visit_mut_binders(&mut self, on_binder: &mut impl FnMut(&mut Binder<N>))

Visit each of the binders in the term, calling the on_binder callback on each of them in turn

Provided Methods§

Source

fn free_vars(&self) -> HashSet<FreeVar<N>>
where N: Eq + Hash + Clone,

Returns the set of free variables in this term

Source

fn binders(&self) -> Vec<Binder<N>>
where N: Clone,

Returns the binders in this pattern

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<N, P1, P2> BoundPattern<N> for (P1, P2)
where N: Clone + PartialEq, P1: BoundPattern<N>, P2: BoundPattern<N>,

Source§

fn pattern_eq(&self, other: &(P1, P2)) -> bool

Source§

fn close_pattern(&mut self, state: ScopeState, on_free: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, state: ScopeState, on_bound: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, on_var: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, on_var: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, on_binder: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, on_binder: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N, P1, P2, P3> BoundPattern<N> for (P1, P2, P3)
where N: Clone + PartialEq, P1: BoundPattern<N>, P2: BoundPattern<N>, P3: BoundPattern<N>,

Source§

fn pattern_eq(&self, other: &(P1, P2, P3)) -> bool

Source§

fn close_pattern(&mut self, state: ScopeState, on_free: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, state: ScopeState, on_bound: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, on_var: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, on_var: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, on_binder: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, on_binder: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N, P1, P2, P3, P4> BoundPattern<N> for (P1, P2, P3, P4)
where N: Clone + PartialEq, P1: BoundPattern<N>, P2: BoundPattern<N>, P3: BoundPattern<N>, P4: BoundPattern<N>,

Source§

fn pattern_eq(&self, other: &(P1, P2, P3, P4)) -> bool

Source§

fn close_pattern(&mut self, state: ScopeState, on_free: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, state: ScopeState, on_bound: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, on_var: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, on_var: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, on_binder: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, on_binder: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N, P1, P2, P3, P4, P5> BoundPattern<N> for (P1, P2, P3, P4, P5)
where N: Clone + PartialEq, P1: BoundPattern<N>, P2: BoundPattern<N>, P3: BoundPattern<N>, P4: BoundPattern<N>, P5: BoundPattern<N>,

Source§

fn pattern_eq(&self, other: &(P1, P2, P3, P4, P5)) -> bool

Source§

fn close_pattern(&mut self, state: ScopeState, on_free: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, state: ScopeState, on_bound: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, on_var: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, on_var: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, on_binder: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, on_binder: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N, P> BoundPattern<N> for Option<P>
where N: Clone + PartialEq, P: BoundPattern<N>,

Source§

fn pattern_eq(&self, other: &Option<P>) -> bool

Source§

fn close_pattern(&mut self, state: ScopeState, on_free: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, state: ScopeState, on_bound: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, on_var: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, on_var: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, on_binder: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, on_binder: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N, P> BoundPattern<N> for Vector<P>
where N: Clone + PartialEq, P: Clone + BoundPattern<N>,

Source§

fn pattern_eq(&self, other: &Vector<P>) -> bool

Source§

fn close_pattern(&mut self, state: ScopeState, on_free: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, state: ScopeState, on_bound: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, on_var: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, on_var: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, on_binder: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, on_binder: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N, P> BoundPattern<N> for [P]
where N: Clone + PartialEq, P: BoundPattern<N>,

Source§

fn pattern_eq(&self, other: &[P]) -> bool

Source§

fn close_pattern(&mut self, state: ScopeState, on_free: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, state: ScopeState, on_bound: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, on_var: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, on_var: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, on_binder: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, on_binder: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N, P> BoundPattern<N> for Box<P>
where N: Clone + PartialEq, P: BoundPattern<N>,

Source§

fn pattern_eq(&self, other: &Box<P>) -> bool

Source§

fn close_pattern(&mut self, state: ScopeState, on_free: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, state: ScopeState, on_bound: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, on_var: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, on_var: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, on_binder: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, on_binder: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N, P> BoundPattern<N> for Rc<P>
where N: Clone + PartialEq, P: BoundPattern<N> + Clone,

Source§

fn pattern_eq(&self, other: &Rc<P>) -> bool

Source§

fn close_pattern(&mut self, state: ScopeState, on_free: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, state: ScopeState, on_bound: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, on_var: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, on_var: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, on_binder: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, on_binder: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N, P> BoundPattern<N> for Arc<P>
where N: Clone + PartialEq, P: BoundPattern<N> + Clone,

Source§

fn pattern_eq(&self, other: &Arc<P>) -> bool

Source§

fn close_pattern(&mut self, state: ScopeState, on_free: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, state: ScopeState, on_bound: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, on_var: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, on_var: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, on_binder: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, on_binder: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N, P> BoundPattern<N> for Vec<P>
where N: Clone + PartialEq, P: BoundPattern<N>,

Source§

fn pattern_eq(&self, other: &Vec<P>) -> bool

Source§

fn close_pattern(&mut self, state: ScopeState, on_free: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, state: ScopeState, on_bound: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, on_var: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, on_var: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, on_binder: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, on_binder: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for bool

Source§

fn pattern_eq(&self, other: &bool) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for char

Source§

fn pattern_eq(&self, other: &char) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for f32

Source§

fn pattern_eq(&self, other: &f32) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for f64

Source§

fn pattern_eq(&self, other: &f64) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for i8

Source§

fn pattern_eq(&self, other: &i8) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for i16

Source§

fn pattern_eq(&self, other: &i16) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for i32

Source§

fn pattern_eq(&self, other: &i32) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for i64

Source§

fn pattern_eq(&self, other: &i64) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for isize

Source§

fn pattern_eq(&self, other: &isize) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for str

Source§

fn pattern_eq(&self, other: &str) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for u8

Source§

fn pattern_eq(&self, other: &u8) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for u16

Source§

fn pattern_eq(&self, other: &u16) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for u32

Source§

fn pattern_eq(&self, other: &u32) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for u64

Source§

fn pattern_eq(&self, other: &u64) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for ()

Source§

fn pattern_eq(&self, other: &()) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for usize

Source§

fn pattern_eq(&self, other: &usize) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for String

Source§

fn pattern_eq(&self, other: &String) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for ByteIndex

Source§

fn pattern_eq(&self, _: &ByteIndex) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for ByteOffset

Source§

fn pattern_eq(&self, _: &ByteOffset) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for ColumnIndex

Source§

fn pattern_eq(&self, _: &ColumnIndex) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for ColumnNumber

Source§

fn pattern_eq(&self, _: &ColumnNumber) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for ColumnOffset

Source§

fn pattern_eq(&self, _: &ColumnOffset) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for LineIndex

Source§

fn pattern_eq(&self, _: &LineIndex) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for LineNumber

Source§

fn pattern_eq(&self, _: &LineNumber) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for LineOffset

Source§

fn pattern_eq(&self, _: &LineOffset) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for BigInt

Source§

fn pattern_eq(&self, other: &BigInt) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq> BoundPattern<N> for BigUint

Source§

fn pattern_eq(&self, other: &BigUint) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Source§

impl<N: Clone + PartialEq, T> BoundPattern<N> for Span<T>

Source§

fn pattern_eq(&self, _: &Span<T>) -> bool

Source§

fn close_pattern(&mut self, _: ScopeState, _: &impl OnFreeFn<N>)

Source§

fn open_pattern(&mut self, _: ScopeState, _: &impl OnBoundFn<N>)

Source§

fn visit_vars(&self, _: &mut impl FnMut(&Var<N>))

Source§

fn visit_mut_vars(&mut self, _: &mut impl FnMut(&mut Var<N>))

Source§

fn visit_binders(&self, _: &mut impl FnMut(&Binder<N>))

Source§

fn visit_mut_binders(&mut self, _: &mut impl FnMut(&mut Binder<N>))

Implementors§

Source§

impl<N> BoundPattern<N> for Binder<N>
where N: Clone + Eq + Hash,

Source§

impl<N, P> BoundPattern<N> for Nest<P>
where N: Clone + PartialEq, P: BoundPattern<N>,

Source§

impl<N, P> BoundPattern<N> for Rec<P>
where N: Clone + PartialEq, P: BoundPattern<N>,

Source§

impl<N, T> BoundPattern<N> for Embed<T>
where N: Clone + PartialEq, T: BoundTerm<N>,

Source§

impl<N, T> BoundPattern<N> for Ignore<T>
where N: Clone + PartialEq,