pub trait Visit {
Show 66 methods
// Provided methods
fn visit<N: Node>(&mut self, i: &N)
where Self: Sized { ... }
fn visit_assignment(&mut self, i: &Assignment) { ... }
fn visit_assignments(&mut self, i: &Assignments) { ... }
fn visit_association(&mut self, i: &Association) { ... }
fn visit_cte(&mut self, i: &Cte) { ... }
fn visit_expr(&mut self, i: &Expr) { ... }
fn visit_expr_and(&mut self, i: &ExprAnd) { ... }
fn visit_expr_any(&mut self, i: &ExprAny) { ... }
fn visit_expr_arg(&mut self, i: &ExprArg) { ... }
fn visit_expr_binary_op(&mut self, i: &ExprBinaryOp) { ... }
fn visit_expr_cast(&mut self, i: &ExprCast) { ... }
fn visit_expr_column(&mut self, i: &ExprColumn) { ... }
fn visit_expr_default(&mut self) { ... }
fn visit_expr_error(&mut self, i: &ExprError) { ... }
fn visit_expr_exists(&mut self, i: &ExprExists) { ... }
fn visit_expr_func(&mut self, i: &ExprFunc) { ... }
fn visit_expr_func_count(&mut self, i: &FuncCount) { ... }
fn visit_expr_func_last_insert_id(&mut self, i: &FuncLastInsertId) { ... }
fn visit_expr_in_list(&mut self, i: &ExprInList) { ... }
fn visit_expr_in_subquery(&mut self, i: &ExprInSubquery) { ... }
fn visit_expr_is_null(&mut self, i: &ExprIsNull) { ... }
fn visit_expr_is_variant(&mut self, i: &ExprIsVariant) { ... }
fn visit_expr_let(&mut self, i: &ExprLet) { ... }
fn visit_expr_map(&mut self, i: &ExprMap) { ... }
fn visit_expr_match(&mut self, i: &ExprMatch) { ... }
fn visit_expr_not(&mut self, i: &ExprNot) { ... }
fn visit_expr_or(&mut self, i: &ExprOr) { ... }
fn visit_expr_list(&mut self, i: &ExprList) { ... }
fn visit_expr_record(&mut self, i: &ExprRecord) { ... }
fn visit_expr_reference(&mut self, i: &ExprReference) { ... }
fn visit_expr_set(&mut self, i: &ExprSet) { ... }
fn visit_expr_set_op(&mut self, i: &ExprSetOp) { ... }
fn visit_expr_stmt(&mut self, i: &ExprStmt) { ... }
fn visit_filter(&mut self, i: &Filter) { ... }
fn visit_condition(&mut self, i: &Condition) { ... }
fn visit_expr_project(&mut self, i: &ExprProject) { ... }
fn visit_insert_target(&mut self, i: &InsertTarget) { ... }
fn visit_join(&mut self, i: &Join) { ... }
fn visit_limit(&mut self, i: &Limit) { ... }
fn visit_limit_cursor(&mut self, i: &LimitCursor) { ... }
fn visit_limit_offset(&mut self, i: &LimitOffset) { ... }
fn visit_order_by(&mut self, i: &OrderBy) { ... }
fn visit_order_by_expr(&mut self, i: &OrderByExpr) { ... }
fn visit_path(&mut self, i: &Path) { ... }
fn visit_projection(&mut self, i: &Projection) { ... }
fn visit_returning(&mut self, i: &Returning) { ... }
fn visit_source(&mut self, i: &Source) { ... }
fn visit_source_model(&mut self, i: &SourceModel) { ... }
fn visit_source_table(&mut self, i: &SourceTable) { ... }
fn visit_source_table_id(&mut self, i: &SourceTableId) { ... }
fn visit_stmt(&mut self, i: &Statement) { ... }
fn visit_stmt_delete(&mut self, i: &Delete) { ... }
fn visit_stmt_insert(&mut self, i: &Insert) { ... }
fn visit_stmt_query(&mut self, i: &Query) { ... }
fn visit_stmt_select(&mut self, i: &Select) { ... }
fn visit_stmt_update(&mut self, i: &Update) { ... }
fn visit_table_derived(&mut self, i: &TableDerived) { ... }
fn visit_table_ref(&mut self, i: &TableRef) { ... }
fn visit_table_factor(&mut self, i: &TableFactor) { ... }
fn visit_table_with_joins(&mut self, i: &TableWithJoins) { ... }
fn visit_type(&mut self, i: &Type) { ... }
fn visit_update_target(&mut self, i: &UpdateTarget) { ... }
fn visit_value(&mut self, i: &Value) { ... }
fn visit_value_record(&mut self, i: &ValueRecord) { ... }
fn visit_values(&mut self, i: &Values) { ... }
fn visit_with(&mut self, i: &With) { ... }
}Expand description
Immutable visitor trait for the statement AST.
Implement this trait to walk the AST without modifying it. Each
visit_* method has a default implementation that recurses into
child nodes via the corresponding free function (e.g.,
visit_expr). Override specific methods to inspect nodes of
interest.
The companion for_each_expr helper visits every expression node
in post-order.
§Examples
use toasty_core::stmt::{visit, Expr, Value, Node};
let expr = Expr::from(Value::from(42_i64));
let mut count = 0;
visit::for_each_expr(&expr, |_| count += 1);
assert_eq!(count, 1);Provided Methods§
Sourcefn visit<N: Node>(&mut self, i: &N)where
Self: Sized,
fn visit<N: Node>(&mut self, i: &N)where
Self: Sized,
Dispatches to the appropriate visit_* method via Node::visit.
Sourcefn visit_assignment(&mut self, i: &Assignment)
fn visit_assignment(&mut self, i: &Assignment)
Visits an Assignment node.
The default implementation delegates to visit_assignment.
Sourcefn visit_assignments(&mut self, i: &Assignments)
fn visit_assignments(&mut self, i: &Assignments)
Visits an Assignments node.
The default implementation delegates to visit_assignments.
Sourcefn visit_association(&mut self, i: &Association)
fn visit_association(&mut self, i: &Association)
Visits an Association node.
The default implementation delegates to visit_association.
Sourcefn visit_expr(&mut self, i: &Expr)
fn visit_expr(&mut self, i: &Expr)
Visits an Expr node.
The default implementation delegates to visit_expr.
Sourcefn visit_expr_and(&mut self, i: &ExprAnd)
fn visit_expr_and(&mut self, i: &ExprAnd)
Visits an ExprAnd node.
The default implementation delegates to visit_expr_and.
Sourcefn visit_expr_any(&mut self, i: &ExprAny)
fn visit_expr_any(&mut self, i: &ExprAny)
Visits an ExprAny node.
The default implementation delegates to visit_expr_any.
Sourcefn visit_expr_arg(&mut self, i: &ExprArg)
fn visit_expr_arg(&mut self, i: &ExprArg)
Visits an ExprArg node.
The default implementation delegates to visit_expr_arg.
Sourcefn visit_expr_binary_op(&mut self, i: &ExprBinaryOp)
fn visit_expr_binary_op(&mut self, i: &ExprBinaryOp)
Visits an ExprBinaryOp node.
The default implementation delegates to visit_expr_binary_op.
Sourcefn visit_expr_cast(&mut self, i: &ExprCast)
fn visit_expr_cast(&mut self, i: &ExprCast)
Visits an ExprCast node.
The default implementation delegates to visit_expr_cast.
Sourcefn visit_expr_column(&mut self, i: &ExprColumn)
fn visit_expr_column(&mut self, i: &ExprColumn)
Visits an ExprColumn node.
The default implementation delegates to visit_expr_column.
Sourcefn visit_expr_default(&mut self)
fn visit_expr_default(&mut self)
Visits a default expression (no associated data).
The default implementation delegates to visit_expr_default.
Sourcefn visit_expr_error(&mut self, i: &ExprError)
fn visit_expr_error(&mut self, i: &ExprError)
Visits an ExprError node.
The default implementation delegates to visit_expr_error.
Sourcefn visit_expr_exists(&mut self, i: &ExprExists)
fn visit_expr_exists(&mut self, i: &ExprExists)
Visits an ExprExists node.
The default implementation delegates to visit_expr_exists.
Sourcefn visit_expr_func(&mut self, i: &ExprFunc)
fn visit_expr_func(&mut self, i: &ExprFunc)
Visits an ExprFunc node.
The default implementation delegates to visit_expr_func.
Sourcefn visit_expr_func_count(&mut self, i: &FuncCount)
fn visit_expr_func_count(&mut self, i: &FuncCount)
Visits a FuncCount node.
The default implementation delegates to visit_expr_func_count.
Sourcefn visit_expr_func_last_insert_id(&mut self, i: &FuncLastInsertId)
fn visit_expr_func_last_insert_id(&mut self, i: &FuncLastInsertId)
Visits a FuncLastInsertId node.
The default implementation delegates to visit_expr_func_last_insert_id.
Sourcefn visit_expr_in_list(&mut self, i: &ExprInList)
fn visit_expr_in_list(&mut self, i: &ExprInList)
Visits an ExprInList node.
The default implementation delegates to visit_expr_in_list.
Sourcefn visit_expr_in_subquery(&mut self, i: &ExprInSubquery)
fn visit_expr_in_subquery(&mut self, i: &ExprInSubquery)
Visits an ExprInSubquery node.
The default implementation delegates to visit_expr_in_subquery.
Sourcefn visit_expr_is_null(&mut self, i: &ExprIsNull)
fn visit_expr_is_null(&mut self, i: &ExprIsNull)
Visits an ExprIsNull node.
The default implementation delegates to visit_expr_is_null.
Sourcefn visit_expr_is_variant(&mut self, i: &ExprIsVariant)
fn visit_expr_is_variant(&mut self, i: &ExprIsVariant)
Visits an ExprIsVariant node.
The default implementation delegates to visit_expr_is_variant.
Sourcefn visit_expr_let(&mut self, i: &ExprLet)
fn visit_expr_let(&mut self, i: &ExprLet)
Visits an ExprLet node.
The default implementation delegates to visit_expr_let.
Sourcefn visit_expr_map(&mut self, i: &ExprMap)
fn visit_expr_map(&mut self, i: &ExprMap)
Visits an ExprMap node.
The default implementation delegates to visit_expr_map.
Sourcefn visit_expr_match(&mut self, i: &ExprMatch)
fn visit_expr_match(&mut self, i: &ExprMatch)
Visits an ExprMatch node.
The default implementation delegates to visit_expr_match.
Sourcefn visit_expr_not(&mut self, i: &ExprNot)
fn visit_expr_not(&mut self, i: &ExprNot)
Visits an ExprNot node.
The default implementation delegates to visit_expr_not.
Sourcefn visit_expr_or(&mut self, i: &ExprOr)
fn visit_expr_or(&mut self, i: &ExprOr)
Visits an ExprOr node.
The default implementation delegates to visit_expr_or.
Sourcefn visit_expr_list(&mut self, i: &ExprList)
fn visit_expr_list(&mut self, i: &ExprList)
Visits an ExprList node.
The default implementation delegates to visit_expr_list.
Sourcefn visit_expr_record(&mut self, i: &ExprRecord)
fn visit_expr_record(&mut self, i: &ExprRecord)
Visits an ExprRecord node.
The default implementation delegates to visit_expr_record.
Sourcefn visit_expr_reference(&mut self, i: &ExprReference)
fn visit_expr_reference(&mut self, i: &ExprReference)
Visits an ExprReference node.
The default implementation delegates to visit_expr_reference.
Sourcefn visit_expr_set(&mut self, i: &ExprSet)
fn visit_expr_set(&mut self, i: &ExprSet)
Visits an ExprSet node.
The default implementation delegates to visit_expr_set.
Sourcefn visit_expr_set_op(&mut self, i: &ExprSetOp)
fn visit_expr_set_op(&mut self, i: &ExprSetOp)
Visits an ExprSetOp node.
The default implementation delegates to visit_expr_set_op.
Sourcefn visit_expr_stmt(&mut self, i: &ExprStmt)
fn visit_expr_stmt(&mut self, i: &ExprStmt)
Visits an ExprStmt node.
The default implementation delegates to visit_expr_stmt.
Sourcefn visit_filter(&mut self, i: &Filter)
fn visit_filter(&mut self, i: &Filter)
Visits a Filter node.
The default implementation delegates to visit_filter.
Sourcefn visit_condition(&mut self, i: &Condition)
fn visit_condition(&mut self, i: &Condition)
Visits a Condition node.
The default implementation delegates to visit_condition.
Sourcefn visit_expr_project(&mut self, i: &ExprProject)
fn visit_expr_project(&mut self, i: &ExprProject)
Visits an ExprProject node.
The default implementation delegates to visit_expr_project.
Sourcefn visit_insert_target(&mut self, i: &InsertTarget)
fn visit_insert_target(&mut self, i: &InsertTarget)
Visits an InsertTarget node.
The default implementation delegates to visit_insert_target.
Sourcefn visit_join(&mut self, i: &Join)
fn visit_join(&mut self, i: &Join)
Visits a Join node.
The default implementation delegates to visit_join.
Sourcefn visit_limit(&mut self, i: &Limit)
fn visit_limit(&mut self, i: &Limit)
Visits a Limit node.
The default implementation delegates to visit_limit.
Sourcefn visit_limit_cursor(&mut self, i: &LimitCursor)
fn visit_limit_cursor(&mut self, i: &LimitCursor)
Visits a LimitCursor node.
The default implementation delegates to visit_limit_cursor.
Sourcefn visit_limit_offset(&mut self, i: &LimitOffset)
fn visit_limit_offset(&mut self, i: &LimitOffset)
Visits a LimitOffset node.
The default implementation delegates to visit_limit_offset.
Sourcefn visit_order_by(&mut self, i: &OrderBy)
fn visit_order_by(&mut self, i: &OrderBy)
Visits an OrderBy node.
The default implementation delegates to visit_order_by.
Sourcefn visit_order_by_expr(&mut self, i: &OrderByExpr)
fn visit_order_by_expr(&mut self, i: &OrderByExpr)
Visits an OrderByExpr node.
The default implementation delegates to visit_order_by_expr.
Sourcefn visit_path(&mut self, i: &Path)
fn visit_path(&mut self, i: &Path)
Visits a Path node.
The default implementation delegates to visit_path.
Sourcefn visit_projection(&mut self, i: &Projection)
fn visit_projection(&mut self, i: &Projection)
Visits a Projection node.
The default implementation delegates to visit_projection.
Sourcefn visit_returning(&mut self, i: &Returning)
fn visit_returning(&mut self, i: &Returning)
Visits a Returning node.
The default implementation delegates to visit_returning.
Sourcefn visit_source(&mut self, i: &Source)
fn visit_source(&mut self, i: &Source)
Visits a Source node.
The default implementation delegates to visit_source.
Sourcefn visit_source_model(&mut self, i: &SourceModel)
fn visit_source_model(&mut self, i: &SourceModel)
Visits a SourceModel node.
The default implementation delegates to visit_source_model.
Sourcefn visit_source_table(&mut self, i: &SourceTable)
fn visit_source_table(&mut self, i: &SourceTable)
Visits a SourceTable node.
The default implementation delegates to visit_source_table.
Sourcefn visit_source_table_id(&mut self, i: &SourceTableId)
fn visit_source_table_id(&mut self, i: &SourceTableId)
Visits a SourceTableId node.
The default implementation delegates to visit_source_table_id.
Sourcefn visit_stmt(&mut self, i: &Statement)
fn visit_stmt(&mut self, i: &Statement)
Visits a Statement node.
The default implementation delegates to visit_stmt.
Sourcefn visit_stmt_delete(&mut self, i: &Delete)
fn visit_stmt_delete(&mut self, i: &Delete)
Visits a Delete statement node.
The default implementation delegates to visit_stmt_delete.
Sourcefn visit_stmt_insert(&mut self, i: &Insert)
fn visit_stmt_insert(&mut self, i: &Insert)
Visits an Insert statement node.
The default implementation delegates to visit_stmt_insert.
Sourcefn visit_stmt_query(&mut self, i: &Query)
fn visit_stmt_query(&mut self, i: &Query)
Visits a Query statement node.
The default implementation delegates to visit_stmt_query.
Sourcefn visit_stmt_select(&mut self, i: &Select)
fn visit_stmt_select(&mut self, i: &Select)
Visits a Select statement node.
The default implementation delegates to visit_stmt_select.
Sourcefn visit_stmt_update(&mut self, i: &Update)
fn visit_stmt_update(&mut self, i: &Update)
Visits an Update statement node.
The default implementation delegates to visit_stmt_update.
Sourcefn visit_table_derived(&mut self, i: &TableDerived)
fn visit_table_derived(&mut self, i: &TableDerived)
Visits a TableDerived node.
The default implementation delegates to visit_table_derived.
Sourcefn visit_table_ref(&mut self, i: &TableRef)
fn visit_table_ref(&mut self, i: &TableRef)
Visits a TableRef node.
The default implementation delegates to visit_table_ref.
Sourcefn visit_table_factor(&mut self, i: &TableFactor)
fn visit_table_factor(&mut self, i: &TableFactor)
Visits a TableFactor node.
The default implementation delegates to visit_table_factor.
Sourcefn visit_table_with_joins(&mut self, i: &TableWithJoins)
fn visit_table_with_joins(&mut self, i: &TableWithJoins)
Visits a TableWithJoins node.
The default implementation delegates to visit_table_with_joins.
Sourcefn visit_type(&mut self, i: &Type)
fn visit_type(&mut self, i: &Type)
Visits a Type node.
The default implementation delegates to visit_type.
Sourcefn visit_update_target(&mut self, i: &UpdateTarget)
fn visit_update_target(&mut self, i: &UpdateTarget)
Visits an UpdateTarget node.
The default implementation delegates to visit_update_target.
Sourcefn visit_value(&mut self, i: &Value)
fn visit_value(&mut self, i: &Value)
Visits a Value node.
The default implementation delegates to visit_value.
Sourcefn visit_value_record(&mut self, i: &ValueRecord)
fn visit_value_record(&mut self, i: &ValueRecord)
Visits a ValueRecord node.
The default implementation delegates to visit_value_record.
Sourcefn visit_values(&mut self, i: &Values)
fn visit_values(&mut self, i: &Values)
Visits a Values node.
The default implementation delegates to visit_values.
Sourcefn visit_with(&mut self, i: &With)
fn visit_with(&mut self, i: &With)
Visits a With node.
The default implementation delegates to visit_with.