1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
use crate::Data;
use crate::Ident;
use crate::InvokeRef;
use crate::Type;
use crate::ValueRef;

#[derive(Debug, Clone)]
pub(crate) enum ValueNode {
    Unit,
    Str(String),
    Reference(ValueRef),
    ReferenceMut(ValueRef),
    Dereference(ValueRef),
    Binding { name: Ident, ty: Type },
    DataStructure { name: String, data: Data<ValueRef> },
    Invoke(InvokeRef),
    Destructure { parent: ValueRef, field: Ident },
}