pub trait Visitable {
// Required methods
fn visit<TData>(
&self,
visitors: &mut (impl VisitorReceiver<TData> + ?Sized),
data: &mut TData,
options: &VisitOptions,
chain: &mut Annex<'_, Chain>,
);
fn visit_mut<TData>(
&mut self,
visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized),
data: &mut TData,
options: &VisitOptions,
chain: &mut Annex<'_, Chain>,
);
}Expand description
For something to visitable it can visit all nested fields.
Required Methods§
fn visit<TData>( &self, visitors: &mut (impl VisitorReceiver<TData> + ?Sized), data: &mut TData, options: &VisitOptions, chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), data: &mut TData, options: &VisitOptions, chain: &mut Annex<'_, Chain>, )
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.
Implementations on Foreign Types§
Source§impl Visitable for bool
impl Visitable for bool
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for char
impl Visitable for char
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for f32
impl Visitable for f32
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for f64
impl Visitable for f64
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for i8
impl Visitable for i8
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for i16
impl Visitable for i16
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for i32
impl Visitable for i32
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for i64
impl Visitable for i64
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for i128
impl Visitable for i128
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for isize
impl Visitable for isize
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for u8
impl Visitable for u8
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for u16
impl Visitable for u16
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for u32
impl Visitable for u32
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for u64
impl Visitable for u64
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for u128
impl Visitable for u128
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for ()
impl Visitable for ()
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for usize
impl Visitable for usize
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for Box<str>
impl Visitable for Box<str>
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for Rc<str>
impl Visitable for Rc<str>
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for String
impl Visitable for String
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for Path
impl Visitable for Path
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl Visitable for PathBuf
impl Visitable for PathBuf
fn visit<TData>( &self, _visitors: &mut (impl VisitorReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, _visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), _data: &mut TData, _options: &VisitOptions, _chain: &mut Annex<'_, Chain>, )
Source§impl<T: Visitable> Visitable for Option<T>
impl<T: Visitable> Visitable for Option<T>
fn visit<TData>( &self, v: &mut (impl VisitorReceiver<TData> + ?Sized), d: &mut TData, s: &VisitOptions, c: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, v: &mut (impl VisitorMutReceiver<TData> + ?Sized), d: &mut TData, s: &VisitOptions, c: &mut Annex<'_, Chain>, )
Source§impl<T: Visitable> Visitable for Box<T>
impl<T: Visitable> Visitable for Box<T>
fn visit<TData>( &self, v: &mut (impl VisitorReceiver<TData> + ?Sized), d: &mut TData, s: &VisitOptions, c: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, v: &mut (impl VisitorMutReceiver<TData> + ?Sized), d: &mut TData, s: &VisitOptions, c: &mut Annex<'_, Chain>, )
Source§impl<T: Visitable> Visitable for Vec<T>
impl<T: Visitable> Visitable for Vec<T>
fn visit<TData>( &self, v: &mut (impl VisitorReceiver<TData> + ?Sized), d: &mut TData, s: &VisitOptions, c: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, v: &mut (impl VisitorMutReceiver<TData> + ?Sized), d: &mut TData, s: &VisitOptions, c: &mut Annex<'_, Chain>, )
Source§impl<T: Visitable, U: Visitable> Visitable for (T, U)
impl<T: Visitable, U: Visitable> Visitable for (T, U)
fn visit<TData>( &self, v: &mut (impl VisitorReceiver<TData> + ?Sized), d: &mut TData, s: &VisitOptions, c: &mut Annex<'_, Chain>, )
fn visit_mut<TData>( &mut self, v: &mut (impl VisitorMutReceiver<TData> + ?Sized), d: &mut TData, s: &VisitOptions, c: &mut Annex<'_, Chain>, )
Implementors§
impl Visitable for ClassMember
impl Visitable for Declaration
impl Visitable for ImportExportName
impl Visitable for ImportLocation
impl Visitable for ExportDeclaration
impl Visitable for Exportable
impl Visitable for ImportedItems
impl Visitable for VariableDeclaration
impl Visitable for VariableDeclarationKeyword
impl Visitable for BlockOrSingleStatement
impl Visitable for JSXAttribute
impl Visitable for JSXElementChildren
impl Visitable for JSXNode
impl Visitable for JSXRoot
impl Visitable for Quoted
impl Visitable for StatementOrDeclaration
impl Visitable for VariableField
For object literals and things with computable or literal keys
impl Visitable for VariableIdentifier
impl Visitable for VariableKeyword
impl Visitable for WithComment<ArrayDestructuringField<VariableField>>
impl Visitable for WithComment<ArrayDestructuringField<LHSOfAssignment>>
impl Visitable for WithComment<ObjectDestructuringField<VariableField>>
impl Visitable for WithComment<ObjectDestructuringField<LHSOfAssignment>>
impl Visitable for ExpressionOrBlock
impl Visitable for LHSOfAssignment
impl Visitable for VariableOrPropertyAccess
impl Visitable for Expression
impl Visitable for FunctionArgument
impl Visitable for InExpressionLHS
impl Visitable for MultipleExpression
impl Visitable for PropertyReference
impl Visitable for SpecialOperators
impl Visitable for SuperReference
impl Visitable for TypeOrConst
impl Visitable for ObjectLiteralMember
impl Visitable for BinaryAssignmentOperator
impl Visitable for BinaryOperator
impl Visitable for UnaryOperator
impl Visitable for UnaryPrefixAssignmentOperator
impl Visitable for FunctionHeader
impl Visitable for MethodHeader
impl Visitable for ParameterData
impl Visitable for NumberRepresentation
impl Visitable for PropertyKey<PublicOrPrivate>
impl Visitable for PropertyKey<AlwaysPublic>
impl Visitable for ForLoopCondition
impl Visitable for ForLoopStatementInitialiser
impl Visitable for Statement
impl Visitable for SwitchBranch
impl Visitable for Visibility
impl Visitable for EnumMember
impl Visitable for IsItem
impl Visitable for TypeAnnotation
impl Visitable for ClassProperty
impl Visitable for ImportDeclaration
impl Visitable for ObjectLiteral
impl Visitable for UnaryPostfixAssignmentOperator
impl Visitable for ArrayElement
impl Visitable for TemplateLiteral
impl Visitable for FunctionBody
impl Visitable for SpreadParameter
impl Visitable for SuperParameter
impl Visitable for ThisParameter
impl Visitable for IsExpression
impl Visitable for ConditionalElseStatement
impl Visitable for DoWhileStatement
impl Visitable for ForLoopStatement
impl Visitable for IfStatement
impl Visitable for ReturnStatement
impl Visitable for SwitchStatement
impl Visitable for ThrowStatement
impl Visitable for TryCatchStatement
impl Visitable for UnconditionalElseStatement
impl Visitable for VarVariableStatement
impl Visitable for WhileStatement
impl Visitable for Block
impl Visitable for Decorator
impl Visitable for JSXElement
impl Visitable for JSXFragment
impl Visitable for SourceId
impl Visitable for DeclareVariableDeclaration
impl Visitable for EnumDeclaration
impl Visitable for InterfaceDeclaration
impl Visitable for Namespace
impl Visitable for TypeAlias
impl Visitable for Span
impl<L, V> Visitable for FunctionParameters<L, V>
impl<T> Visitable for WithComment<T>where
T: Visitable,
impl<T: ImportOrExport> Visitable for ImportExportPart<T>
impl<T: FunctionBased> Visitable for FunctionBase<T>
Visiting logic: TODO make visiting macro better and remove