pub enum ExprKind {
Show 47 variants
NoOp,
Constant(Value),
Module {
name: ArcStr,
value: ModuleKind,
},
ExplicitParens(Arc<Expr>),
Do {
exprs: Arc<[Expr]>,
},
Use {
name: ModPath,
},
Bind(Arc<BindExpr>),
Ref {
name: ModPath,
},
Connect {
name: ModPath,
value: Arc<Expr>,
deref: bool,
},
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>>,
},
MapRef {
source: Arc<Expr>,
key: Arc<Expr>,
},
StructWith(StructWithExpr),
Lambda(Arc<LambdaExpr>),
TypeDef(TypeDefExpr),
TypeCast {
expr: Arc<Expr>,
typ: Type,
},
Apply(ApplyExpr),
Any {
args: Arc<[Expr]>,
},
Array {
args: Arc<[Expr]>,
},
Map {
args: Arc<[(Expr, Expr)]>,
},
Tuple {
args: Arc<[Expr]>,
},
Variant {
tag: ArcStr,
args: Arc<[Expr]>,
},
Struct(StructExpr),
Select(SelectExpr),
Qop(Arc<Expr>),
OrNever(Arc<Expr>),
TryCatch(Arc<TryCatchExpr>),
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>,
},
Mod {
lhs: Arc<Expr>,
rhs: Arc<Expr>,
},
Sample {
lhs: Arc<Expr>,
rhs: Arc<Expr>,
},
}Variants§
NoOp
Constant(Value)
Module
ExplicitParens(Arc<Expr>)
Do
Use
Bind(Arc<BindExpr>)
Ref
Connect
StringInterpolate
StructRef
TupleRef
ArrayRef
ArraySlice
MapRef
StructWith(StructWithExpr)
Lambda(Arc<LambdaExpr>)
TypeDef(TypeDefExpr)
TypeCast
Apply(ApplyExpr)
Any
Array
Map
Tuple
Variant
Struct(StructExpr)
Select(SelectExpr)
Qop(Arc<Expr>)
OrNever(Arc<Expr>)
TryCatch(Arc<TryCatchExpr>)
ByRef(Arc<Expr>)
Deref(Arc<Expr>)
Eq
Ne
Lt
Gt
Lte
Gte
And
Or
Not
Add
Sub
Mul
Div
Mod
Sample
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
Trait Implementations§
Source§impl PartialOrd for ExprKind
impl PartialOrd for ExprKind
Source§impl PrettyDisplay for ExprKind
impl PrettyDisplay for ExprKind
Source§fn fmt_pretty_inner(&self, buf: &mut PrettyBuf) -> Result
fn fmt_pretty_inner(&self, buf: &mut PrettyBuf) -> Result
Do the actual pretty print. This should not be called directly, it will
be called by fmt_pretty when we know it can’t fit on a single line.
Source§fn fmt_pretty(&self, buf: &mut PrettyBuf) -> Result
fn fmt_pretty(&self, buf: &mut PrettyBuf) -> Result
This is the user facing fmt method, it will first try to format the
expression on a single line, and if that is impossible it will call the
pretty printer.
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> 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