pub trait AstVisitorMut: Sized {
Show 45 methods
// Provided methods
fn visit(&mut self, node: &mut AstNode) { ... }
fn visit_statement_list(&mut self, stmts: &mut Vec<AstNode>) { ... }
fn map(&mut self, node: AstNode) -> AstNode { ... }
fn visit_compilation_unit(&mut self, unit: &mut CompilationUnit) { ... }
fn visit_implementation(&mut self, implementation: &mut Implementation) { ... }
fn visit_variable_block(&mut self, block: &mut VariableBlock) { ... }
fn visit_variable(&mut self, variable: &mut Variable) { ... }
fn visit_enum_element(&mut self, element: &mut AstNode) { ... }
fn visit_data_type_declaration(
&mut self,
data_type_declaration: &mut DataTypeDeclaration,
) { ... }
fn visit_user_type_declaration(
&mut self,
user_type: &mut UserTypeDeclaration,
) { ... }
fn visit_data_type(&mut self, data_type: &mut DataType) { ... }
fn visit_pou(&mut self, pou: &mut Pou) { ... }
fn visit_empty_statement(&mut self, _node: &mut AstNode) { ... }
fn visit_default_value(&mut self, _node: &mut AstNode) { ... }
fn visit_literal(&mut self, node: &mut AstNode) { ... }
fn visit_multiplied_statement(&mut self, node: &mut AstNode) { ... }
fn visit_reference_expr(&mut self, node: &mut AstNode) { ... }
fn visit_identifier(&mut self, _node: &mut AstNode) { ... }
fn visit_direct_access(&mut self, node: &mut AstNode) { ... }
fn visit_hardware_access(&mut self, node: &mut AstNode) { ... }
fn visit_binary_expression(&mut self, node: &mut AstNode) { ... }
fn visit_unary_expression(&mut self, node: &mut AstNode) { ... }
fn visit_expression_list(&mut self, node: &mut AstNode) { ... }
fn visit_paren_expression(&mut self, node: &mut AstNode) { ... }
fn visit_range_statement(&mut self, node: &mut AstNode) { ... }
fn visit_vla_range_statement(&mut self, _node: &mut AstNode) { ... }
fn visit_assignment(&mut self, node: &mut AstNode) { ... }
fn visit_output_assignment(&mut self, node: &mut AstNode) { ... }
fn visit_ref_assignment(&mut self, node: &mut AstNode) { ... }
fn visit_call_statement(&mut self, node: &mut AstNode) { ... }
fn visit_control_statement(&mut self, node: &mut AstNode) { ... }
fn visit_for_loop_statement(&mut self, stmt: &mut ForLoopStatement) { ... }
fn visit_while_loop_statement(&mut self, stmt: &mut LoopStatement) { ... }
fn visit_repeat_loop_statement(&mut self, stmt: &mut LoopStatement) { ... }
fn visit_case_condition(&mut self, node: &mut AstNode) { ... }
fn visit_exit_statement(&mut self, _node: &mut AstNode) { ... }
fn visit_continue_statement(&mut self, _node: &mut AstNode) { ... }
fn visit_return_statement(&mut self, node: &mut AstNode) { ... }
fn visit_jump_statement(&mut self, node: &mut AstNode) { ... }
fn visit_label_statement(&mut self, _node: &mut AstNode) { ... }
fn visit_allocation(&mut self, _node: &mut AstNode) { ... }
fn visit_interface(&mut self, interface: &mut Interface) { ... }
fn visit_property(&mut self, property: &mut PropertyBlock) { ... }
fn visit_super(&mut self, _node: &mut AstNode) { ... }
fn visit_this(&mut self, _node: &mut AstNode) { ... }
}Provided Methods§
fn visit(&mut self, node: &mut AstNode)
Sourcefn visit_statement_list(&mut self, stmts: &mut Vec<AstNode>)
fn visit_statement_list(&mut self, stmts: &mut Vec<AstNode>)
Called when visiting a list of statements (e.g. implementation bodies, control flow branches). Override this to intercept statement-list processing — for example, to drain-and-rebuild the list for 1→N statement expansion.
fn map(&mut self, node: AstNode) -> AstNode
fn visit_compilation_unit(&mut self, unit: &mut CompilationUnit)
fn visit_implementation(&mut self, implementation: &mut Implementation)
fn visit_variable_block(&mut self, block: &mut VariableBlock)
fn visit_variable(&mut self, variable: &mut Variable)
fn visit_enum_element(&mut self, element: &mut AstNode)
fn visit_data_type_declaration( &mut self, data_type_declaration: &mut DataTypeDeclaration, )
fn visit_user_type_declaration(&mut self, user_type: &mut UserTypeDeclaration)
fn visit_data_type(&mut self, data_type: &mut DataType)
fn visit_pou(&mut self, pou: &mut Pou)
fn visit_empty_statement(&mut self, _node: &mut AstNode)
fn visit_default_value(&mut self, _node: &mut AstNode)
fn visit_literal(&mut self, node: &mut AstNode)
fn visit_multiplied_statement(&mut self, node: &mut AstNode)
fn visit_reference_expr(&mut self, node: &mut AstNode)
fn visit_identifier(&mut self, _node: &mut AstNode)
fn visit_direct_access(&mut self, node: &mut AstNode)
fn visit_hardware_access(&mut self, node: &mut AstNode)
fn visit_binary_expression(&mut self, node: &mut AstNode)
fn visit_unary_expression(&mut self, node: &mut AstNode)
fn visit_expression_list(&mut self, node: &mut AstNode)
fn visit_paren_expression(&mut self, node: &mut AstNode)
fn visit_range_statement(&mut self, node: &mut AstNode)
fn visit_vla_range_statement(&mut self, _node: &mut AstNode)
fn visit_assignment(&mut self, node: &mut AstNode)
fn visit_output_assignment(&mut self, node: &mut AstNode)
fn visit_ref_assignment(&mut self, node: &mut AstNode)
fn visit_call_statement(&mut self, node: &mut AstNode)
fn visit_control_statement(&mut self, node: &mut AstNode)
Sourcefn visit_for_loop_statement(&mut self, stmt: &mut ForLoopStatement)
fn visit_for_loop_statement(&mut self, stmt: &mut ForLoopStatement)
Visits a ForLoop control statement.
Make sure to visit the counter, bounds, optional step and body to continue the traversal.
§Arguments
stmt- The unwraped, typedForLoopStatementnode to visit.
Sourcefn visit_while_loop_statement(&mut self, stmt: &mut LoopStatement)
fn visit_while_loop_statement(&mut self, stmt: &mut LoopStatement)
Visits a WhileLoop control statement.
Make sure to visit the condition and body to continue the traversal.
§Arguments
stmt- The unwraped, typedLoopStatementnode to visit.
Sourcefn visit_repeat_loop_statement(&mut self, stmt: &mut LoopStatement)
fn visit_repeat_loop_statement(&mut self, stmt: &mut LoopStatement)
Visits a RepeatLoop control statement.
Make sure to visit the condition and body to continue the traversal.
§Arguments
stmt- The unwraped, typedLoopStatementnode to visit.
fn visit_case_condition(&mut self, node: &mut AstNode)
fn visit_exit_statement(&mut self, _node: &mut AstNode)
fn visit_continue_statement(&mut self, _node: &mut AstNode)
fn visit_return_statement(&mut self, node: &mut AstNode)
fn visit_jump_statement(&mut self, node: &mut AstNode)
Sourcefn visit_label_statement(&mut self, _node: &mut AstNode)
fn visit_label_statement(&mut self, _node: &mut AstNode)
Visits a LabelStatement node.
§Arguments
stmt- The unwrapedypedLabelStatementnode to visit.node- The wrappedAstNodenode to visit. Offers access to location information and AstId
Sourcefn visit_allocation(&mut self, _node: &mut AstNode)
fn visit_allocation(&mut self, _node: &mut AstNode)
Visits a Allocation node.
§Arguments
stmt- The unwrapedypedAllocationnode to visit.node- The wrappedAstNodenode to visit. Offers access to location information and AstId
fn visit_interface(&mut self, interface: &mut Interface)
fn visit_property(&mut self, property: &mut PropertyBlock)
fn visit_super(&mut self, _node: &mut AstNode)
fn visit_this(&mut self, _node: &mut AstNode)
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.