pub enum ExprKind {
Show 16 variants
Ident(String),
Indirection {
base: Box<Expr>,
field: IndirectionKind,
},
Literal(Literal),
Pipeline(Pipeline),
Tuple(Vec<Expr>),
Array(Vec<Expr>),
Range(Range),
Binary(BinaryExpr),
Unary(UnaryExpr),
FuncCall(FuncCall),
Func(Box<Func>),
SString(Vec<InterpolateItem>),
FString(Vec<InterpolateItem>),
Case(Vec<SwitchCase>),
Param(String),
Internal(String),
}
Variants§
Ident(String)
Indirection
Literal(Literal)
Pipeline(Pipeline)
Tuple(Vec<Expr>)
Array(Vec<Expr>)
Range(Range)
Binary(BinaryExpr)
Unary(UnaryExpr)
FuncCall(FuncCall)
Func(Box<Func>)
SString(Vec<InterpolateItem>)
FString(Vec<InterpolateItem>)
Case(Vec<SwitchCase>)
Param(String)
placeholder for values provided after query is compiled
Internal(String)
When used instead of function body, the function will be translated to a RQ operator. Contains ident of the RQ operator.
Implementations§
Source§impl ExprKind
impl ExprKind
Sourcepub fn as_ident_mut(&mut self) -> Option<&mut String>
pub fn as_ident_mut(&mut self) -> Option<&mut String>
Optionally returns mutable references to the inner fields if this is a ExprKind::Ident
, otherwise None
Sourcepub fn as_ident(&self) -> Option<&String>
pub fn as_ident(&self) -> Option<&String>
Optionally returns references to the inner fields if this is a ExprKind::Ident
, otherwise None
Sourcepub fn into_ident(self) -> Result<String, Self>
pub fn into_ident(self) -> Result<String, Self>
Returns the inner fields if this is a ExprKind::Ident
, otherwise returns back the enum in the Err
case of the result
Sourcepub fn is_indirection(&self) -> bool
pub fn is_indirection(&self) -> bool
Returns true if this is a ExprKind::Indirection
, otherwise false
Sourcepub fn as_indirection_mut(
&mut self,
) -> Option<(&mut Box<Expr>, &mut IndirectionKind)>
pub fn as_indirection_mut( &mut self, ) -> Option<(&mut Box<Expr>, &mut IndirectionKind)>
Optionally returns mutable references to the inner fields if this is a ExprKind::Indirection
, otherwise None
Sourcepub fn as_indirection(&self) -> Option<(&Box<Expr>, &IndirectionKind)>
pub fn as_indirection(&self) -> Option<(&Box<Expr>, &IndirectionKind)>
Optionally returns references to the inner fields if this is a ExprKind::Indirection
, otherwise None
Sourcepub fn into_indirection(self) -> Result<(Box<Expr>, IndirectionKind), Self>
pub fn into_indirection(self) -> Result<(Box<Expr>, IndirectionKind), Self>
Returns the inner fields if this is a ExprKind::Indirection
, otherwise returns back the enum in the Err
case of the result
Sourcepub fn is_literal(&self) -> bool
pub fn is_literal(&self) -> bool
Returns true if this is a ExprKind::Literal
, otherwise false
Sourcepub fn as_literal_mut(&mut self) -> Option<&mut Literal>
pub fn as_literal_mut(&mut self) -> Option<&mut Literal>
Optionally returns mutable references to the inner fields if this is a ExprKind::Literal
, otherwise None
Sourcepub fn as_literal(&self) -> Option<&Literal>
pub fn as_literal(&self) -> Option<&Literal>
Optionally returns references to the inner fields if this is a ExprKind::Literal
, otherwise None
Sourcepub fn into_literal(self) -> Result<Literal, Self>
pub fn into_literal(self) -> Result<Literal, Self>
Returns the inner fields if this is a ExprKind::Literal
, otherwise returns back the enum in the Err
case of the result
Sourcepub fn is_pipeline(&self) -> bool
pub fn is_pipeline(&self) -> bool
Returns true if this is a ExprKind::Pipeline
, otherwise false
Sourcepub fn as_pipeline_mut(&mut self) -> Option<&mut Pipeline>
pub fn as_pipeline_mut(&mut self) -> Option<&mut Pipeline>
Optionally returns mutable references to the inner fields if this is a ExprKind::Pipeline
, otherwise None
Sourcepub fn as_pipeline(&self) -> Option<&Pipeline>
pub fn as_pipeline(&self) -> Option<&Pipeline>
Optionally returns references to the inner fields if this is a ExprKind::Pipeline
, otherwise None
Sourcepub fn into_pipeline(self) -> Result<Pipeline, Self>
pub fn into_pipeline(self) -> Result<Pipeline, Self>
Returns the inner fields if this is a ExprKind::Pipeline
, otherwise returns back the enum in the Err
case of the result
Sourcepub fn as_tuple_mut(&mut self) -> Option<&mut Vec<Expr>>
pub fn as_tuple_mut(&mut self) -> Option<&mut Vec<Expr>>
Optionally returns mutable references to the inner fields if this is a ExprKind::Tuple
, otherwise None
Sourcepub fn as_tuple(&self) -> Option<&Vec<Expr>>
pub fn as_tuple(&self) -> Option<&Vec<Expr>>
Optionally returns references to the inner fields if this is a ExprKind::Tuple
, otherwise None
Sourcepub fn into_tuple(self) -> Result<Vec<Expr>, Self>
pub fn into_tuple(self) -> Result<Vec<Expr>, Self>
Returns the inner fields if this is a ExprKind::Tuple
, otherwise returns back the enum in the Err
case of the result
Sourcepub fn as_array_mut(&mut self) -> Option<&mut Vec<Expr>>
pub fn as_array_mut(&mut self) -> Option<&mut Vec<Expr>>
Optionally returns mutable references to the inner fields if this is a ExprKind::Array
, otherwise None
Sourcepub fn as_array(&self) -> Option<&Vec<Expr>>
pub fn as_array(&self) -> Option<&Vec<Expr>>
Optionally returns references to the inner fields if this is a ExprKind::Array
, otherwise None
Sourcepub fn into_array(self) -> Result<Vec<Expr>, Self>
pub fn into_array(self) -> Result<Vec<Expr>, Self>
Returns the inner fields if this is a ExprKind::Array
, otherwise returns back the enum in the Err
case of the result
Sourcepub fn as_range_mut(&mut self) -> Option<&mut Range>
pub fn as_range_mut(&mut self) -> Option<&mut Range>
Optionally returns mutable references to the inner fields if this is a ExprKind::Range
, otherwise None
Sourcepub fn as_range(&self) -> Option<&Range>
pub fn as_range(&self) -> Option<&Range>
Optionally returns references to the inner fields if this is a ExprKind::Range
, otherwise None
Sourcepub fn into_range(self) -> Result<Range, Self>
pub fn into_range(self) -> Result<Range, Self>
Returns the inner fields if this is a ExprKind::Range
, otherwise returns back the enum in the Err
case of the result
Sourcepub fn as_binary_mut(&mut self) -> Option<&mut BinaryExpr>
pub fn as_binary_mut(&mut self) -> Option<&mut BinaryExpr>
Optionally returns mutable references to the inner fields if this is a ExprKind::Binary
, otherwise None
Sourcepub fn as_binary(&self) -> Option<&BinaryExpr>
pub fn as_binary(&self) -> Option<&BinaryExpr>
Optionally returns references to the inner fields if this is a ExprKind::Binary
, otherwise None
Sourcepub fn into_binary(self) -> Result<BinaryExpr, Self>
pub fn into_binary(self) -> Result<BinaryExpr, Self>
Returns the inner fields if this is a ExprKind::Binary
, otherwise returns back the enum in the Err
case of the result
Sourcepub fn as_unary_mut(&mut self) -> Option<&mut UnaryExpr>
pub fn as_unary_mut(&mut self) -> Option<&mut UnaryExpr>
Optionally returns mutable references to the inner fields if this is a ExprKind::Unary
, otherwise None
Sourcepub fn as_unary(&self) -> Option<&UnaryExpr>
pub fn as_unary(&self) -> Option<&UnaryExpr>
Optionally returns references to the inner fields if this is a ExprKind::Unary
, otherwise None
Sourcepub fn into_unary(self) -> Result<UnaryExpr, Self>
pub fn into_unary(self) -> Result<UnaryExpr, Self>
Returns the inner fields if this is a ExprKind::Unary
, otherwise returns back the enum in the Err
case of the result
Sourcepub fn is_func_call(&self) -> bool
pub fn is_func_call(&self) -> bool
Returns true if this is a ExprKind::FuncCall
, otherwise false
Sourcepub fn as_func_call_mut(&mut self) -> Option<&mut FuncCall>
pub fn as_func_call_mut(&mut self) -> Option<&mut FuncCall>
Optionally returns mutable references to the inner fields if this is a ExprKind::FuncCall
, otherwise None
Sourcepub fn as_func_call(&self) -> Option<&FuncCall>
pub fn as_func_call(&self) -> Option<&FuncCall>
Optionally returns references to the inner fields if this is a ExprKind::FuncCall
, otherwise None
Sourcepub fn into_func_call(self) -> Result<FuncCall, Self>
pub fn into_func_call(self) -> Result<FuncCall, Self>
Returns the inner fields if this is a ExprKind::FuncCall
, otherwise returns back the enum in the Err
case of the result
Sourcepub fn as_func_mut(&mut self) -> Option<&mut Box<Func>>
pub fn as_func_mut(&mut self) -> Option<&mut Box<Func>>
Optionally returns mutable references to the inner fields if this is a ExprKind::Func
, otherwise None
Sourcepub fn as_func(&self) -> Option<&Box<Func>>
pub fn as_func(&self) -> Option<&Box<Func>>
Optionally returns references to the inner fields if this is a ExprKind::Func
, otherwise None
Sourcepub fn into_func(self) -> Result<Box<Func>, Self>
pub fn into_func(self) -> Result<Box<Func>, Self>
Returns the inner fields if this is a ExprKind::Func
, otherwise returns back the enum in the Err
case of the result
Sourcepub fn is_s_string(&self) -> bool
pub fn is_s_string(&self) -> bool
Returns true if this is a ExprKind::SString
, otherwise false
Sourcepub fn as_s_string_mut(&mut self) -> Option<&mut Vec<InterpolateItem>>
pub fn as_s_string_mut(&mut self) -> Option<&mut Vec<InterpolateItem>>
Optionally returns mutable references to the inner fields if this is a ExprKind::SString
, otherwise None
Sourcepub fn as_s_string(&self) -> Option<&Vec<InterpolateItem>>
pub fn as_s_string(&self) -> Option<&Vec<InterpolateItem>>
Optionally returns references to the inner fields if this is a ExprKind::SString
, otherwise None
Sourcepub fn into_s_string(self) -> Result<Vec<InterpolateItem>, Self>
pub fn into_s_string(self) -> Result<Vec<InterpolateItem>, Self>
Returns the inner fields if this is a ExprKind::SString
, otherwise returns back the enum in the Err
case of the result
Sourcepub fn is_f_string(&self) -> bool
pub fn is_f_string(&self) -> bool
Returns true if this is a ExprKind::FString
, otherwise false
Sourcepub fn as_f_string_mut(&mut self) -> Option<&mut Vec<InterpolateItem>>
pub fn as_f_string_mut(&mut self) -> Option<&mut Vec<InterpolateItem>>
Optionally returns mutable references to the inner fields if this is a ExprKind::FString
, otherwise None
Sourcepub fn as_f_string(&self) -> Option<&Vec<InterpolateItem>>
pub fn as_f_string(&self) -> Option<&Vec<InterpolateItem>>
Optionally returns references to the inner fields if this is a ExprKind::FString
, otherwise None
Sourcepub fn into_f_string(self) -> Result<Vec<InterpolateItem>, Self>
pub fn into_f_string(self) -> Result<Vec<InterpolateItem>, Self>
Returns the inner fields if this is a ExprKind::FString
, otherwise returns back the enum in the Err
case of the result
Sourcepub fn as_case_mut(&mut self) -> Option<&mut Vec<SwitchCase>>
pub fn as_case_mut(&mut self) -> Option<&mut Vec<SwitchCase>>
Optionally returns mutable references to the inner fields if this is a ExprKind::Case
, otherwise None
Sourcepub fn as_case(&self) -> Option<&Vec<SwitchCase>>
pub fn as_case(&self) -> Option<&Vec<SwitchCase>>
Optionally returns references to the inner fields if this is a ExprKind::Case
, otherwise None
Sourcepub fn into_case(self) -> Result<Vec<SwitchCase>, Self>
pub fn into_case(self) -> Result<Vec<SwitchCase>, Self>
Returns the inner fields if this is a ExprKind::Case
, otherwise returns back the enum in the Err
case of the result
Sourcepub fn as_param_mut(&mut self) -> Option<&mut String>
pub fn as_param_mut(&mut self) -> Option<&mut String>
Optionally returns mutable references to the inner fields if this is a ExprKind::Param
, otherwise None
Sourcepub fn as_param(&self) -> Option<&String>
pub fn as_param(&self) -> Option<&String>
Optionally returns references to the inner fields if this is a ExprKind::Param
, otherwise None
Sourcepub fn into_param(self) -> Result<String, Self>
pub fn into_param(self) -> Result<String, Self>
Returns the inner fields if this is a ExprKind::Param
, otherwise returns back the enum in the Err
case of the result
Sourcepub fn is_internal(&self) -> bool
pub fn is_internal(&self) -> bool
Returns true if this is a ExprKind::Internal
, otherwise false
Sourcepub fn as_internal_mut(&mut self) -> Option<&mut String>
pub fn as_internal_mut(&mut self) -> Option<&mut String>
Optionally returns mutable references to the inner fields if this is a ExprKind::Internal
, otherwise None
Sourcepub fn as_internal(&self) -> Option<&String>
pub fn as_internal(&self) -> Option<&String>
Optionally returns references to the inner fields if this is a ExprKind::Internal
, otherwise None
Sourcepub fn into_internal(self) -> Result<String, Self>
pub fn into_internal(self) -> Result<String, Self>
Returns the inner fields if this is a ExprKind::Internal
, otherwise returns back the enum in the Err
case of the result