pub enum NodeKind<C: Ctx, E: UserEvent> {
Show 38 variants
Nop,
Use {
scope: ModPath,
name: ModPath,
},
TypeDef {
scope: ModPath,
name: ArcStr,
},
Constant(Value),
Module(Box<[Node<C, E>]>),
Do(Box<[Node<C, E>]>),
Bind {
pattern: Box<StructPatternNode>,
node: Box<Node<C, E>>,
},
Ref {
id: BindId,
top_id: ExprId,
},
StructRef {
source: Box<Node<C, E>>,
field: usize,
top_id: ExprId,
},
TupleRef {
source: Box<Node<C, E>>,
field: usize,
top_id: ExprId,
},
ArrayRef(Box<ArrayRefNode<C, E>>),
ArraySlice(Box<ArraySliceNode<C, E>>),
StringInterpolate {
args: Box<[Cached<C, E>]>,
},
Connect(BindId, Box<Node<C, E>>),
Lambda(Arc<LambdaDef<C, E>>),
Qop(BindId, Box<Node<C, E>>),
TypeCast {
target: Type<NoRefs>,
n: Box<Node<C, E>>,
},
Any {
args: Box<[Node<C, E>]>,
},
Array {
args: Box<[Cached<C, E>]>,
},
Tuple {
args: Box<[Cached<C, E>]>,
},
Variant {
tag: ArcStr,
args: Box<[Cached<C, E>]>,
},
Struct {
names: Box<[ArcStr]>,
args: Box<[Cached<C, E>]>,
},
StructWith {
source: Box<Node<C, E>>,
current: Option<ValArray>,
replace: Box<[(usize, Cached<C, E>)]>,
},
Apply(Box<CallSite<C, E>>),
Select(Box<SelectNode<C, E>>),
Eq {
lhs: Box<Cached<C, E>>,
rhs: Box<Cached<C, E>>,
},
Ne {
lhs: Box<Cached<C, E>>,
rhs: Box<Cached<C, E>>,
},
Lt {
lhs: Box<Cached<C, E>>,
rhs: Box<Cached<C, E>>,
},
Gt {
lhs: Box<Cached<C, E>>,
rhs: Box<Cached<C, E>>,
},
Lte {
lhs: Box<Cached<C, E>>,
rhs: Box<Cached<C, E>>,
},
Gte {
lhs: Box<Cached<C, E>>,
rhs: Box<Cached<C, E>>,
},
And {
lhs: Box<Cached<C, E>>,
rhs: Box<Cached<C, E>>,
},
Or {
lhs: Box<Cached<C, E>>,
rhs: Box<Cached<C, E>>,
},
Not {
node: Box<Node<C, E>>,
},
Add {
lhs: Box<Cached<C, E>>,
rhs: Box<Cached<C, E>>,
},
Sub {
lhs: Box<Cached<C, E>>,
rhs: Box<Cached<C, E>>,
},
Mul {
lhs: Box<Cached<C, E>>,
rhs: Box<Cached<C, E>>,
},
Div {
lhs: Box<Cached<C, E>>,
rhs: Box<Cached<C, E>>,
},
}
Variants§
Nop
Use
TypeDef
Constant(Value)
Module(Box<[Node<C, E>]>)
Do(Box<[Node<C, E>]>)
Bind
Ref
StructRef
TupleRef
ArrayRef(Box<ArrayRefNode<C, E>>)
ArraySlice(Box<ArraySliceNode<C, E>>)
StringInterpolate
Connect(BindId, Box<Node<C, E>>)
Lambda(Arc<LambdaDef<C, E>>)
Qop(BindId, Box<Node<C, E>>)
TypeCast
Any
Array
Tuple
Variant
Struct
StructWith
Apply(Box<CallSite<C, E>>)
Select(Box<SelectNode<C, E>>)
Eq
Ne
Lt
Gt
Lte
Gte
And
Or
Not
Add
Sub
Mul
Div
Trait Implementations§
Auto Trait Implementations§
impl<C, E> Freeze for NodeKind<C, E>
impl<C, E> !RefUnwindSafe for NodeKind<C, E>
impl<C, E> Send for NodeKind<C, E>
impl<C, E> Sync for NodeKind<C, E>
impl<C, E> Unpin for NodeKind<C, E>
impl<C, E> !UnwindSafe for NodeKind<C, E>
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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