pub enum ExpressionKind<'i> {
Show 14 variants
Identifier(&'i str),
String(String),
StringPattern {
kind: &'i str,
value: String,
},
RemoteSymbol(RemoteRefSymbolBuf),
AtWorkspace(String),
AtCurrentWorkspace,
DagRangeAll,
RangeAll,
Unary(UnaryOp, Box<ExpressionNode<'i>>),
Binary(BinaryOp, Box<ExpressionNode<'i>>, Box<ExpressionNode<'i>>),
UnionAll(Vec<ExpressionNode<'i>>),
FunctionCall(Box<FunctionCallNode<'i>>),
Modifier(Box<ModifierNode<'i>>),
AliasExpanded(AliasId<'i>, Box<ExpressionNode<'i>>),
}
Variants§
Identifier(&'i str)
Unquoted symbol.
String(String)
Quoted symbol or string.
StringPattern
<kind>:<value>
RemoteSymbol(RemoteRefSymbolBuf)
<name>@<remote>
AtWorkspace(String)
<name>@
AtCurrentWorkspace
@
DagRangeAll
::
RangeAll
..
Unary(UnaryOp, Box<ExpressionNode<'i>>)
Binary(BinaryOp, Box<ExpressionNode<'i>>, Box<ExpressionNode<'i>>)
UnionAll(Vec<ExpressionNode<'i>>)
x | y | ..
FunctionCall(Box<FunctionCallNode<'i>>)
Modifier(Box<ModifierNode<'i>>)
name: body
AliasExpanded(AliasId<'i>, Box<ExpressionNode<'i>>)
Identity node to preserve the span in the source text.
Trait Implementations§
Source§impl<'i> AliasExpandableExpression<'i> for ExpressionKind<'i>
impl<'i> AliasExpandableExpression<'i> for ExpressionKind<'i>
Source§fn identifier(name: &'i str) -> Self
fn identifier(name: &'i str) -> Self
Wraps identifier.
Source§fn function_call(function: Box<FunctionCallNode<'i>>) -> Self
fn function_call(function: Box<FunctionCallNode<'i>>) -> Self
Wraps function call.
Source§fn alias_expanded(id: AliasId<'i>, subst: Box<ExpressionNode<'i>>) -> Self
fn alias_expanded(id: AliasId<'i>, subst: Box<ExpressionNode<'i>>) -> Self
Wraps substituted expression.
Source§impl<'i> Clone for ExpressionKind<'i>
impl<'i> Clone for ExpressionKind<'i>
Source§fn clone(&self) -> ExpressionKind<'i>
fn clone(&self) -> ExpressionKind<'i>
Returns a duplicate of the value. Read more
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<'i> Debug for ExpressionKind<'i>
impl<'i> Debug for ExpressionKind<'i>
Source§impl<'i> FoldableExpression<'i> for ExpressionKind<'i>
impl<'i> FoldableExpression<'i> for ExpressionKind<'i>
Source§impl<'i> PartialEq for ExpressionKind<'i>
impl<'i> PartialEq for ExpressionKind<'i>
impl<'i> Eq for ExpressionKind<'i>
impl<'i> StructuralPartialEq for ExpressionKind<'i>
Auto Trait Implementations§
impl<'i> Freeze for ExpressionKind<'i>
impl<'i> RefUnwindSafe for ExpressionKind<'i>
impl<'i> Send for ExpressionKind<'i>
impl<'i> Sync for ExpressionKind<'i>
impl<'i> Unpin for ExpressionKind<'i>
impl<'i> UnwindSafe for ExpressionKind<'i>
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more