pub enum NodeShape {
Show 14 variants
Sort,
Var,
Global,
Const,
Pi,
Lambda,
App,
Match,
Fix,
MutualFix,
Let,
Lit,
Hole,
Bound,
}Expand description
Which Node kind a subterm is — one per Node variant, and wildcard-free everywhere it is
matched for the same reason Node is.
This exists so a caller can ask “does this subterm contain a Match anywhere?” in O(1)
instead of walking it. The bit lives in Info and is ORed up from the children exactly
once, at interning time.
Variants§
Sort
Var
Global
Const
Pi
Lambda
App
Match
Fix
MutualFix
Let
Lit
Hole
Bound
Node::Bound — a de Bruijn level, which only an α-canonical form carries.
Trait Implementations§
impl Copy for NodeShape
impl Eq for NodeShape
impl StructuralPartialEq for NodeShape
Auto Trait Implementations§
impl Freeze for NodeShape
impl RefUnwindSafe for NodeShape
impl Send for NodeShape
impl Sync for NodeShape
impl Unpin for NodeShape
impl UnsafeUnpin for NodeShape
impl UnwindSafe for NodeShape
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