pub enum ExprKind {
Show 39 variants
Constant(Value),
Module {
name: ArcStr,
export: bool,
value: ModuleKind,
},
Do {
exprs: Arc<[Expr]>,
},
Use {
name: ModPath,
},
Bind(Arc<Bind>),
Ref {
name: ModPath,
},
Connect {
name: ModPath,
value: Arc<Expr>,
},
StringInterpolate {
args: Arc<[Expr]>,
},
StructRef {
source: Arc<Expr>,
field: ArcStr,
},
TupleRef {
source: Arc<Expr>,
field: usize,
},
ArrayRef {
source: Arc<Expr>,
i: Arc<Expr>,
},
ArraySlice {
source: Arc<Expr>,
start: Option<Arc<Expr>>,
end: Option<Arc<Expr>>,
},
StructWith {
source: Arc<Expr>,
replace: Arc<[(ArcStr, Expr)]>,
},
Lambda(Arc<Lambda>),
TypeDef {
name: ArcStr,
params: Arc<[(TVar, Option<Type>)]>,
typ: Type,
},
TypeCast {
expr: Arc<Expr>,
typ: Type,
},
Apply {
args: Arc<[(Option<ArcStr>, Expr)]>,
function: Arc<Expr>,
},
Any {
args: Arc<[Expr]>,
},
Array {
args: Arc<[Expr]>,
},
Tuple {
args: Arc<[Expr]>,
},
Variant {
tag: ArcStr,
args: Arc<[Expr]>,
},
Struct {
args: Arc<[(ArcStr, Expr)]>,
},
Select {
arg: Arc<Expr>,
arms: Arc<[(Pattern, Expr)]>,
},
Qop(Arc<Expr>),
ByRef(Arc<Expr>),
Deref(Arc<Expr>),
Eq {
lhs: Arc<Expr>,
rhs: Arc<Expr>,
},
Ne {
lhs: Arc<Expr>,
rhs: Arc<Expr>,
},
Lt {
lhs: Arc<Expr>,
rhs: Arc<Expr>,
},
Gt {
lhs: Arc<Expr>,
rhs: Arc<Expr>,
},
Lte {
lhs: Arc<Expr>,
rhs: Arc<Expr>,
},
Gte {
lhs: Arc<Expr>,
rhs: Arc<Expr>,
},
And {
lhs: Arc<Expr>,
rhs: Arc<Expr>,
},
Or {
lhs: Arc<Expr>,
rhs: Arc<Expr>,
},
Not {
expr: Arc<Expr>,
},
Add {
lhs: Arc<Expr>,
rhs: Arc<Expr>,
},
Sub {
lhs: Arc<Expr>,
rhs: Arc<Expr>,
},
Mul {
lhs: Arc<Expr>,
rhs: Arc<Expr>,
},
Div {
lhs: Arc<Expr>,
rhs: Arc<Expr>,
},
}
Variants§
Constant(Value)
Module
Do
Use
Bind(Arc<Bind>)
Ref
Connect
StringInterpolate
StructRef
TupleRef
ArrayRef
ArraySlice
StructWith
Lambda(Arc<Lambda>)
TypeDef
TypeCast
Apply
Any
Array
Tuple
Variant
Struct
Select
Qop(Arc<Expr>)
ByRef(Arc<Expr>)
Deref(Arc<Expr>)
Eq
Ne
Lt
Gt
Lte
Gte
And
Or
Not
Add
Sub
Mul
Div
Implementations§
Source§impl ExprKind
impl ExprKind
pub fn to_expr(self, pos: SourcePosition) -> Expr
Sourcepub fn to_expr_nopos(self) -> Expr
pub fn to_expr_nopos(self) -> Expr
does not provide any position information or comment
pub fn to_string_pretty(&self, col_limit: usize) -> String
Trait Implementations§
Source§impl PartialOrd for ExprKind
impl PartialOrd for ExprKind
impl StructuralPartialEq for ExprKind
Auto Trait Implementations§
impl Freeze for ExprKind
impl !RefUnwindSafe for ExprKind
impl Send for ExprKind
impl Sync for ExprKind
impl Unpin for ExprKind
impl !UnwindSafe for ExprKind
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
Source§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
Fallible version of
ToCompactString::to_compact_string()
Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
Converts the given value to a
CompactString
. Read moreSource§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
Source§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
Fallible version of
ToCompactString::to_compact_string()
Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
Converts the given value to a
CompactString
. Read more