Enum prql_compiler::ir::pl::ExprKind
source · pub enum ExprKind {
Show 14 variants
Ident(Ident),
All {
within: Box<Expr>,
except: Box<Expr>,
},
Literal(Literal),
Tuple(Vec<Expr>),
Array(Vec<Expr>),
FuncCall(FuncCall),
Func(Box<Func>),
TransformCall(TransformCall),
SString(Vec<InterpolateItem<Expr>>),
FString(Vec<InterpolateItem<Expr>>),
Case(Vec<SwitchCase<Box<Expr>>>),
RqOperator {
name: String,
args: Vec<Expr>,
},
Param(String),
Internal(String),
}
Variants§
Ident(Ident)
All
Literal(Literal)
Tuple(Vec<Expr>)
Array(Vec<Expr>)
FuncCall(FuncCall)
Func(Box<Func>)
TransformCall(TransformCall)
SString(Vec<InterpolateItem<Expr>>)
FString(Vec<InterpolateItem<Expr>>)
Case(Vec<SwitchCase<Box<Expr>>>)
RqOperator
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 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
sourcepub 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
sourcepub 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
sourcepub fn as_all_mut(&mut self) -> Option<(&mut Box<Expr>, &mut Box<Expr>)>
pub fn as_all_mut(&mut self) -> Option<(&mut Box<Expr>, &mut Box<Expr>)>
Optionally returns mutable references to the inner fields if this is a ExprKind::All
, otherwise None
sourcepub fn as_all(&self) -> Option<(&Box<Expr>, &Box<Expr>)>
pub fn as_all(&self) -> Option<(&Box<Expr>, &Box<Expr>)>
Optionally returns references to the inner fields if this is a ExprKind::All
, otherwise None
sourcepub fn into_all(self) -> Result<(Box<Expr>, Box<Expr>), ExprKind>
pub fn into_all(self) -> Result<(Box<Expr>, Box<Expr>), ExprKind>
Returns the inner fields if this is a ExprKind::All
, 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, 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
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>, 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
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>, 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
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, 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
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>, 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
sourcepub fn is_transform_call(&self) -> bool
pub fn is_transform_call(&self) -> bool
Returns true if this is a ExprKind::TransformCall
, otherwise false
sourcepub fn as_transform_call_mut(&mut self) -> Option<&mut TransformCall>
pub fn as_transform_call_mut(&mut self) -> Option<&mut TransformCall>
Optionally returns mutable references to the inner fields if this is a ExprKind::TransformCall
, otherwise None
sourcepub fn as_transform_call(&self) -> Option<&TransformCall>
pub fn as_transform_call(&self) -> Option<&TransformCall>
Optionally returns references to the inner fields if this is a ExprKind::TransformCall
, otherwise None
sourcepub fn into_transform_call(self) -> Result<TransformCall, ExprKind>
pub fn into_transform_call(self) -> Result<TransformCall, ExprKind>
Returns the inner fields if this is a ExprKind::TransformCall
, 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<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
sourcepub 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
sourcepub 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
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<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
sourcepub 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
sourcepub 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
sourcepub 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
sourcepub 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
sourcepub 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
sourcepub fn is_rq_operator(&self) -> bool
pub fn is_rq_operator(&self) -> bool
Returns true if this is a ExprKind::RqOperator
, otherwise false
sourcepub fn as_rq_operator_mut(&mut self) -> Option<(&mut String, &mut Vec<Expr>)>
pub fn as_rq_operator_mut(&mut self) -> Option<(&mut String, &mut Vec<Expr>)>
Optionally returns mutable references to the inner fields if this is a ExprKind::RqOperator
, otherwise None
sourcepub fn as_rq_operator(&self) -> Option<(&String, &Vec<Expr>)>
pub fn as_rq_operator(&self) -> Option<(&String, &Vec<Expr>)>
Optionally returns references to the inner fields if this is a ExprKind::RqOperator
, otherwise None
sourcepub fn into_rq_operator(self) -> Result<(String, Vec<Expr>), ExprKind>
pub fn into_rq_operator(self) -> Result<(String, Vec<Expr>), ExprKind>
Returns the inner fields if this is a ExprKind::RqOperator
, 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, 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
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, 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