Enum prql_compiler::ast::ExprKind
pub enum ExprKind {
Show 15 variants
Ident(Ident),
Literal(Literal),
Pipeline(Pipeline),
Tuple(Vec<Expr>),
Array(Vec<Expr>),
Range(Range<Box<Expr>>),
Binary(BinaryExpr),
Unary(UnaryExpr),
FuncCall(FuncCall),
Func(Box<Func>),
SString(Vec<InterpolateItem<Expr>>),
FString(Vec<InterpolateItem<Expr>>),
Case(Vec<SwitchCase<Box<Expr>>>),
Param(String),
Internal(String),
}
Variants§
Ident(Ident)
Literal(Literal)
Pipeline(Pipeline)
Tuple(Vec<Expr>)
Array(Vec<Expr>)
Range(Range<Box<Expr>>)
Binary(BinaryExpr)
Unary(UnaryExpr)
FuncCall(FuncCall)
Func(Box<Func>)
SString(Vec<InterpolateItem<Expr>>)
FString(Vec<InterpolateItem<Expr>>)
Case(Vec<SwitchCase<Box<Expr>>>)
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§
§impl ExprKind
impl ExprKind
pub fn as_ident_mut(&mut self) -> Option<&mut Ident>
pub fn as_ident_mut(&mut self) -> Option<&mut Ident>
Optionally returns mutable references to the inner fields if this is a ExprKind::Ident
, otherwise None
pub fn as_ident(&self) -> Option<&Ident>
pub fn as_ident(&self) -> Option<&Ident>
Optionally returns references to the inner fields if this is a ExprKind::Ident
, otherwise None
pub fn into_ident(self) -> Result<Ident, ExprKind>
pub fn into_ident(self) -> Result<Ident, ExprKind>
Returns the inner fields if this is a ExprKind::Ident
, otherwise returns back the enum in the Err
case of the result
pub fn is_literal(&self) -> bool
pub fn is_literal(&self) -> bool
Returns true if this is a ExprKind::Literal
, otherwise false
pub 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
pub 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
pub fn into_literal(self) -> Result<Literal, ExprKind>
pub fn into_literal(self) -> Result<Literal, ExprKind>
Returns the inner fields if this is a ExprKind::Literal
, otherwise returns back the enum in the Err
case of the result
pub fn is_pipeline(&self) -> bool
pub fn is_pipeline(&self) -> bool
Returns true if this is a ExprKind::Pipeline
, otherwise false
pub 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
pub 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
pub fn into_pipeline(self) -> Result<Pipeline, ExprKind>
pub fn into_pipeline(self) -> Result<Pipeline, ExprKind>
Returns the inner fields if this is a ExprKind::Pipeline
, otherwise returns back the enum in the Err
case of the result
pub 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
pub 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
pub fn into_tuple(self) -> Result<Vec<Expr>, ExprKind>
pub fn into_tuple(self) -> Result<Vec<Expr>, ExprKind>
Returns the inner fields if this is a ExprKind::Tuple
, otherwise returns back the enum in the Err
case of the result
pub 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
pub 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
pub fn into_array(self) -> Result<Vec<Expr>, ExprKind>
pub fn into_array(self) -> Result<Vec<Expr>, ExprKind>
Returns the inner fields if this is a ExprKind::Array
, otherwise returns back the enum in the Err
case of the result
pub fn as_range_mut(&mut self) -> Option<&mut Range<Box<Expr>>>
pub fn as_range_mut(&mut self) -> Option<&mut Range<Box<Expr>>>
Optionally returns mutable references to the inner fields if this is a ExprKind::Range
, otherwise None
pub fn as_range(&self) -> Option<&Range<Box<Expr>>>
pub fn as_range(&self) -> Option<&Range<Box<Expr>>>
Optionally returns references to the inner fields if this is a ExprKind::Range
, otherwise None
pub fn into_range(self) -> Result<Range<Box<Expr>>, ExprKind>
pub fn into_range(self) -> Result<Range<Box<Expr>>, ExprKind>
Returns the inner fields if this is a ExprKind::Range
, otherwise returns back the enum in the Err
case of the result
pub 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
pub 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
pub fn into_binary(self) -> Result<BinaryExpr, ExprKind>
pub fn into_binary(self) -> Result<BinaryExpr, ExprKind>
Returns the inner fields if this is a ExprKind::Binary
, otherwise returns back the enum in the Err
case of the result
pub 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
pub 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
pub fn into_unary(self) -> Result<UnaryExpr, ExprKind>
pub fn into_unary(self) -> Result<UnaryExpr, ExprKind>
Returns the inner fields if this is a ExprKind::Unary
, otherwise returns back the enum in the Err
case of the result
pub fn is_func_call(&self) -> bool
pub fn is_func_call(&self) -> bool
Returns true if this is a ExprKind::FuncCall
, otherwise false
pub 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
pub 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
pub fn into_func_call(self) -> Result<FuncCall, ExprKind>
pub fn into_func_call(self) -> Result<FuncCall, ExprKind>
Returns the inner fields if this is a ExprKind::FuncCall
, otherwise returns back the enum in the Err
case of the result
pub 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
pub 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
pub fn into_func(self) -> Result<Box<Func>, ExprKind>
pub fn into_func(self) -> Result<Box<Func>, ExprKind>
Returns the inner fields if this is a ExprKind::Func
, otherwise returns back the enum in the Err
case of the result
pub fn is_s_string(&self) -> bool
pub fn is_s_string(&self) -> bool
Returns true if this is a ExprKind::SString
, otherwise false
pub fn as_s_string_mut(&mut self) -> Option<&mut Vec<InterpolateItem<Expr>>>
pub fn as_s_string_mut(&mut self) -> Option<&mut Vec<InterpolateItem<Expr>>>
Optionally returns mutable references to the inner fields if this is a ExprKind::SString
, otherwise None
pub fn as_s_string(&self) -> Option<&Vec<InterpolateItem<Expr>>>
pub fn as_s_string(&self) -> Option<&Vec<InterpolateItem<Expr>>>
Optionally returns references to the inner fields if this is a ExprKind::SString
, otherwise None
pub fn into_s_string(self) -> Result<Vec<InterpolateItem<Expr>>, ExprKind>
pub fn into_s_string(self) -> Result<Vec<InterpolateItem<Expr>>, ExprKind>
Returns the inner fields if this is a ExprKind::SString
, otherwise returns back the enum in the Err
case of the result
pub fn is_f_string(&self) -> bool
pub fn is_f_string(&self) -> bool
Returns true if this is a ExprKind::FString
, otherwise false
pub fn as_f_string_mut(&mut self) -> Option<&mut Vec<InterpolateItem<Expr>>>
pub fn as_f_string_mut(&mut self) -> Option<&mut Vec<InterpolateItem<Expr>>>
Optionally returns mutable references to the inner fields if this is a ExprKind::FString
, otherwise None
pub fn as_f_string(&self) -> Option<&Vec<InterpolateItem<Expr>>>
pub fn as_f_string(&self) -> Option<&Vec<InterpolateItem<Expr>>>
Optionally returns references to the inner fields if this is a ExprKind::FString
, otherwise None
pub fn into_f_string(self) -> Result<Vec<InterpolateItem<Expr>>, ExprKind>
pub fn into_f_string(self) -> Result<Vec<InterpolateItem<Expr>>, ExprKind>
Returns the inner fields if this is a ExprKind::FString
, otherwise returns back the enum in the Err
case of the result
pub fn as_case_mut(&mut self) -> Option<&mut Vec<SwitchCase<Box<Expr>>>>
pub fn as_case_mut(&mut self) -> Option<&mut Vec<SwitchCase<Box<Expr>>>>
Optionally returns mutable references to the inner fields if this is a ExprKind::Case
, otherwise None
pub fn as_case(&self) -> Option<&Vec<SwitchCase<Box<Expr>>>>
pub fn as_case(&self) -> Option<&Vec<SwitchCase<Box<Expr>>>>
Optionally returns references to the inner fields if this is a ExprKind::Case
, otherwise None
pub fn into_case(self) -> Result<Vec<SwitchCase<Box<Expr>>>, ExprKind>
pub fn into_case(self) -> Result<Vec<SwitchCase<Box<Expr>>>, ExprKind>
Returns the inner fields if this is a ExprKind::Case
, otherwise returns back the enum in the Err
case of the result
pub 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
pub 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
pub fn into_param(self) -> Result<String, ExprKind>
pub fn into_param(self) -> Result<String, ExprKind>
Returns the inner fields if this is a ExprKind::Param
, otherwise returns back the enum in the Err
case of the result
pub fn is_internal(&self) -> bool
pub fn is_internal(&self) -> bool
Returns true if this is a ExprKind::Internal
, otherwise false
pub 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
pub 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
pub fn into_internal(self) -> Result<String, ExprKind>
pub fn into_internal(self) -> Result<String, ExprKind>
Returns the inner fields if this is a ExprKind::Internal
, otherwise returns back the enum in the Err
case of the result