Visit

Trait Visit 

pub trait Visit {
Show 66 methods // Provided methods fn visit<N>(&mut self, i: &N) where N: Node, 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§

fn visit<N>(&mut self, i: &N)
where N: Node, Self: Sized,

Dispatches to the appropriate visit_* method via Node::visit.

fn visit_assignment(&mut self, i: &Assignment)

Visits an Assignment node.

The default implementation delegates to visit_assignment.

fn visit_assignments(&mut self, i: &Assignments)

Visits an Assignments node.

The default implementation delegates to visit_assignments.

fn visit_association(&mut self, i: &Association)

Visits an Association node.

The default implementation delegates to visit_association.

fn visit_cte(&mut self, i: &Cte)

Visits a Cte (common table expression) node.

The default implementation delegates to visit_cte.

fn visit_expr(&mut self, i: &Expr)

Visits an Expr node.

The default implementation delegates to visit_expr.

fn visit_expr_and(&mut self, i: &ExprAnd)

Visits an ExprAnd node.

The default implementation delegates to visit_expr_and.

fn visit_expr_any(&mut self, i: &ExprAny)

Visits an ExprAny node.

The default implementation delegates to visit_expr_any.

fn visit_expr_arg(&mut self, i: &ExprArg)

Visits an ExprArg node.

The default implementation delegates to visit_expr_arg.

fn visit_expr_binary_op(&mut self, i: &ExprBinaryOp)

Visits an ExprBinaryOp node.

The default implementation delegates to visit_expr_binary_op.

fn visit_expr_cast(&mut self, i: &ExprCast)

Visits an ExprCast node.

The default implementation delegates to visit_expr_cast.

fn visit_expr_column(&mut self, i: &ExprColumn)

Visits an ExprColumn node.

The default implementation delegates to visit_expr_column.

fn visit_expr_default(&mut self)

Visits a default expression (no associated data).

The default implementation delegates to visit_expr_default.

fn visit_expr_error(&mut self, i: &ExprError)

Visits an ExprError node.

The default implementation delegates to visit_expr_error.

fn visit_expr_exists(&mut self, i: &ExprExists)

Visits an ExprExists node.

The default implementation delegates to visit_expr_exists.

fn visit_expr_func(&mut self, i: &ExprFunc)

Visits an ExprFunc node.

The default implementation delegates to visit_expr_func.

fn visit_expr_func_count(&mut self, i: &FuncCount)

Visits a FuncCount node.

The default implementation delegates to visit_expr_func_count.

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.

fn visit_expr_in_list(&mut self, i: &ExprInList)

Visits an ExprInList node.

The default implementation delegates to visit_expr_in_list.

fn visit_expr_in_subquery(&mut self, i: &ExprInSubquery)

Visits an ExprInSubquery node.

The default implementation delegates to visit_expr_in_subquery.

fn visit_expr_is_null(&mut self, i: &ExprIsNull)

Visits an ExprIsNull node.

The default implementation delegates to visit_expr_is_null.

fn visit_expr_is_variant(&mut self, i: &ExprIsVariant)

Visits an ExprIsVariant node.

The default implementation delegates to visit_expr_is_variant.

fn visit_expr_let(&mut self, i: &ExprLet)

Visits an ExprLet node.

The default implementation delegates to visit_expr_let.

fn visit_expr_map(&mut self, i: &ExprMap)

Visits an ExprMap node.

The default implementation delegates to visit_expr_map.

fn visit_expr_match(&mut self, i: &ExprMatch)

Visits an ExprMatch node.

The default implementation delegates to visit_expr_match.

fn visit_expr_not(&mut self, i: &ExprNot)

Visits an ExprNot node.

The default implementation delegates to visit_expr_not.

fn visit_expr_or(&mut self, i: &ExprOr)

Visits an ExprOr node.

The default implementation delegates to visit_expr_or.

fn visit_expr_list(&mut self, i: &ExprList)

Visits an ExprList node.

The default implementation delegates to visit_expr_list.

fn visit_expr_record(&mut self, i: &ExprRecord)

Visits an ExprRecord node.

The default implementation delegates to visit_expr_record.

fn visit_expr_reference(&mut self, i: &ExprReference)

Visits an ExprReference node.

The default implementation delegates to visit_expr_reference.

fn visit_expr_set(&mut self, i: &ExprSet)

Visits an ExprSet node.

The default implementation delegates to visit_expr_set.

fn visit_expr_set_op(&mut self, i: &ExprSetOp)

Visits an ExprSetOp node.

The default implementation delegates to visit_expr_set_op.

fn visit_expr_stmt(&mut self, i: &ExprStmt)

Visits an ExprStmt node.

The default implementation delegates to visit_expr_stmt.

fn visit_filter(&mut self, i: &Filter)

Visits a Filter node.

The default implementation delegates to visit_filter.

fn visit_condition(&mut self, i: &Condition)

Visits a Condition node.

The default implementation delegates to visit_condition.

fn visit_expr_project(&mut self, i: &ExprProject)

Visits an ExprProject node.

The default implementation delegates to visit_expr_project.

fn visit_insert_target(&mut self, i: &InsertTarget)

Visits an InsertTarget node.

The default implementation delegates to visit_insert_target.

fn visit_join(&mut self, i: &Join)

Visits a Join node.

The default implementation delegates to visit_join.

fn visit_limit(&mut self, i: &Limit)

Visits a Limit node.

The default implementation delegates to visit_limit.

fn visit_limit_cursor(&mut self, i: &LimitCursor)

Visits a LimitCursor node.

The default implementation delegates to visit_limit_cursor.

fn visit_limit_offset(&mut self, i: &LimitOffset)

Visits a LimitOffset node.

The default implementation delegates to visit_limit_offset.

fn visit_order_by(&mut self, i: &OrderBy)

Visits an OrderBy node.

The default implementation delegates to visit_order_by.

fn visit_order_by_expr(&mut self, i: &OrderByExpr)

Visits an OrderByExpr node.

The default implementation delegates to visit_order_by_expr.

fn visit_path(&mut self, i: &Path)

Visits a Path node.

The default implementation delegates to visit_path.

fn visit_projection(&mut self, i: &Projection)

Visits a Projection node.

The default implementation delegates to visit_projection.

fn visit_returning(&mut self, i: &Returning)

Visits a Returning node.

The default implementation delegates to visit_returning.

fn visit_source(&mut self, i: &Source)

Visits a Source node.

The default implementation delegates to visit_source.

fn visit_source_model(&mut self, i: &SourceModel)

Visits a SourceModel node.

The default implementation delegates to visit_source_model.

fn visit_source_table(&mut self, i: &SourceTable)

Visits a SourceTable node.

The default implementation delegates to visit_source_table.

fn visit_source_table_id(&mut self, i: &SourceTableId)

Visits a SourceTableId node.

The default implementation delegates to visit_source_table_id.

fn visit_stmt(&mut self, i: &Statement)

Visits a [Statement] node.

The default implementation delegates to visit_stmt.

fn visit_stmt_delete(&mut self, i: &Delete)

Visits a Delete statement node.

The default implementation delegates to visit_stmt_delete.

fn visit_stmt_insert(&mut self, i: &Insert)

Visits an Insert statement node.

The default implementation delegates to visit_stmt_insert.

fn visit_stmt_query(&mut self, i: &Query)

Visits a Query statement node.

The default implementation delegates to visit_stmt_query.

fn visit_stmt_select(&mut self, i: &Select)

Visits a Select statement node.

The default implementation delegates to visit_stmt_select.

fn visit_stmt_update(&mut self, i: &Update)

Visits an Update statement node.

The default implementation delegates to visit_stmt_update.

fn visit_table_derived(&mut self, i: &TableDerived)

Visits a TableDerived node.

The default implementation delegates to visit_table_derived.

fn visit_table_ref(&mut self, i: &TableRef)

Visits a TableRef node.

The default implementation delegates to visit_table_ref.

fn visit_table_factor(&mut self, i: &TableFactor)

Visits a TableFactor node.

The default implementation delegates to visit_table_factor.

fn visit_table_with_joins(&mut self, i: &TableWithJoins)

Visits a TableWithJoins node.

The default implementation delegates to visit_table_with_joins.

fn visit_type(&mut self, i: &Type)

Visits a Type node.

The default implementation delegates to visit_type.

fn visit_update_target(&mut self, i: &UpdateTarget)

Visits an UpdateTarget node.

The default implementation delegates to visit_update_target.

fn visit_value(&mut self, i: &Value)

Visits a Value node.

The default implementation delegates to visit_value.

fn visit_value_record(&mut self, i: &ValueRecord)

Visits a ValueRecord node.

The default implementation delegates to visit_value_record.

fn visit_values(&mut self, i: &Values)

Visits a Values node.

The default implementation delegates to visit_values.

fn visit_with(&mut self, i: &With)

Visits a With node.

The default implementation delegates to visit_with.

Implementations on Foreign Types§

§

impl<V> Visit for &mut V
where V: Visit,

§

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_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_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)

Implementors§