pub trait Visitor<S> {
type Output;
Show 24 methods
// Required methods
fn visit_resource(&mut self, resource: &Resource<S>) -> Self::Output;
fn visit_entry(&mut self, entry: &Entry<S>) -> Self::Output;
fn visit_message(&mut self, message: &Message<S>) -> Self::Output;
fn visit_term(&mut self, term: &Term<S>) -> Self::Output;
fn visit_pattern(&mut self, pattern: &Pattern<S>) -> Self::Output;
fn visit_text_element(&mut self, value: &S) -> Self::Output;
fn visit_attribute(&mut self, attribute: &Attribute<S>) -> Self::Output;
fn visit_variant(
&mut self,
variant_key: &VariantKey<S>,
pattern: &Pattern<S>,
is_default: bool,
) -> Self::Output;
fn visit_comment(&mut self, comment: &Comment<S>) -> Self::Output;
fn visit_call_arguments(
&mut self,
arguments: &CallArguments<S>,
) -> Self::Output;
fn visit_named_argument(
&mut self,
argument: &NamedArgument<S>,
) -> Self::Output;
fn visit_string_literal(&mut self, value: &S) -> Self::Output;
fn visit_number_literal(&mut self, value: &S) -> Self::Output;
fn visit_function_reference(
&mut self,
id: &Identifier<S>,
arguments: &CallArguments<S>,
) -> Self::Output;
fn visit_message_reference(
&mut self,
id: &Identifier<S>,
attribute: Option<&Identifier<S>>,
) -> Self::Output;
fn visit_term_reference(
&mut self,
id: &Identifier<S>,
attribute: Option<&Identifier<S>>,
arguments: Option<&CallArguments<S>>,
) -> Self::Output;
fn visit_variable_reference(&mut self, id: &Identifier<S>) -> Self::Output;
fn visit_select_expression<'a, I>(
&mut self,
selector: &'a InlineExpression<S>,
variants: I,
) -> Self::Output
where I: Iterator<Item = &'a Variant<S>>;
// Provided methods
fn begin_variant(&mut self, variant: &Variant<S>) { ... }
fn end_variant(&mut self, variant: &Variant<S>) { ... }
fn begin_inline_expression(
&mut self,
inline_expression: &InlineExpression<S>,
) { ... }
fn end_inline_expression(&mut self, inline_expression: &InlineExpression<S>) { ... }
fn begin_expression(&mut self, expression: &Expression<S>) { ... }
fn end_expression(&mut self, expression: &Expression<S>) { ... }
}
Required Associated Types§
Required Methods§
fn visit_resource(&mut self, resource: &Resource<S>) -> Self::Output
fn visit_entry(&mut self, entry: &Entry<S>) -> Self::Output
fn visit_message(&mut self, message: &Message<S>) -> Self::Output
fn visit_term(&mut self, term: &Term<S>) -> Self::Output
fn visit_pattern(&mut self, pattern: &Pattern<S>) -> Self::Output
fn visit_text_element(&mut self, value: &S) -> Self::Output
fn visit_attribute(&mut self, attribute: &Attribute<S>) -> Self::Output
fn visit_variant( &mut self, variant_key: &VariantKey<S>, pattern: &Pattern<S>, is_default: bool, ) -> Self::Output
fn visit_comment(&mut self, comment: &Comment<S>) -> Self::Output
fn visit_call_arguments(&mut self, arguments: &CallArguments<S>) -> Self::Output
fn visit_named_argument(&mut self, argument: &NamedArgument<S>) -> Self::Output
fn visit_string_literal(&mut self, value: &S) -> Self::Output
fn visit_number_literal(&mut self, value: &S) -> Self::Output
fn visit_function_reference( &mut self, id: &Identifier<S>, arguments: &CallArguments<S>, ) -> Self::Output
fn visit_message_reference( &mut self, id: &Identifier<S>, attribute: Option<&Identifier<S>>, ) -> Self::Output
fn visit_term_reference( &mut self, id: &Identifier<S>, attribute: Option<&Identifier<S>>, arguments: Option<&CallArguments<S>>, ) -> Self::Output
fn visit_variable_reference(&mut self, id: &Identifier<S>) -> Self::Output
fn visit_select_expression<'a, I>( &mut self, selector: &'a InlineExpression<S>, variants: I, ) -> Self::Output
Provided Methods§
fn begin_variant(&mut self, variant: &Variant<S>)
fn end_variant(&mut self, variant: &Variant<S>)
fn begin_inline_expression(&mut self, inline_expression: &InlineExpression<S>)
fn end_inline_expression(&mut self, inline_expression: &InlineExpression<S>)
fn begin_expression(&mut self, expression: &Expression<S>)
fn end_expression(&mut self, expression: &Expression<S>)
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.