pub trait FunctionBased:
Debug
+ Clone
+ PartialEq
+ Send
+ Sync {
type Header: Debug + Clone + PartialEq + Send + Sync;
type Name: Debug + Clone + PartialEq + Send + Sync;
type LeadingParameter: LeadingParameter + Serialize;
type ParameterVisibility: ParameterVisibility + Serialize;
type Body: ASTNode;
// Required methods
fn get_name(name: &Self::Name) -> Option<&str>;
fn header_and_name_from_reader(
reader: &mut impl TokenReader<TSXToken, TokenStart>,
state: &mut ParsingState,
options: &ParseOptions,
) -> ParseResult<(HeadingAndPosition<Self>, Self::Name)>;
fn header_and_name_to_string_from_buffer<T: ToString>(
buf: &mut T,
header: &Self::Header,
name: &Self::Name,
options: &ToStringOptions,
local: LocalToStringInformation,
);
fn visit_name<TData>(
name: &Self::Name,
visitors: &mut (impl VisitorReceiver<TData> + ?Sized),
data: &mut TData,
options: &VisitOptions,
chain: &mut Annex<'_, Chain>,
);
fn visit_name_mut<TData>(
name: &mut Self::Name,
visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized),
data: &mut TData,
options: &VisitOptions,
chain: &mut Annex<'_, Chain>,
);
// Provided methods
fn get_parameter_body_boundary_token() -> Option<TSXToken> { ... }
fn has_body(_: &Self::Body) -> bool { ... }
fn parameters_from_reader<T: ToString>(
reader: &mut impl TokenReader<TSXToken, TokenStart>,
state: &mut ParsingState,
options: &ParseOptions,
) -> ParseResult<FunctionParameters<Self::LeadingParameter, Self::ParameterVisibility>> { ... }
fn parameters_to_string_from_buffer<T: ToString>(
buf: &mut T,
parameters: &FunctionParameters<Self::LeadingParameter, Self::ParameterVisibility>,
options: &ToStringOptions,
local: LocalToStringInformation,
) { ... }
fn parameter_body_boundary_token_to_string_from_buffer<T: ToString>(
buf: &mut T,
options: &ToStringOptions,
) { ... }
}
Expand description
Specialization information for FunctionBase
Required Associated Types§
Sourcetype LeadingParameter: LeadingParameter + Serialize
type LeadingParameter: LeadingParameter + Serialize
Cfg to make up for the fact serde_derive
does not use syn_helpers
Sourcetype ParameterVisibility: ParameterVisibility + Serialize
type ParameterVisibility: ParameterVisibility + Serialize
Cfg to make up for the fact serde_derive
does not use syn_helpers
Required Methods§
fn header_and_name_from_reader( reader: &mut impl TokenReader<TSXToken, TokenStart>, state: &mut ParsingState, options: &ParseOptions, ) -> ParseResult<(HeadingAndPosition<Self>, Self::Name)>
fn header_and_name_to_string_from_buffer<T: ToString>( buf: &mut T, header: &Self::Header, name: &Self::Name, options: &ToStringOptions, local: LocalToStringInformation, )
fn visit_name<TData>( name: &Self::Name, visitors: &mut (impl VisitorReceiver<TData> + ?Sized), data: &mut TData, options: &VisitOptions, chain: &mut Annex<'_, Chain>, )
fn visit_name_mut<TData>( name: &mut Self::Name, visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), data: &mut TData, options: &VisitOptions, chain: &mut Annex<'_, Chain>, )
Provided Methods§
Sourcefn get_parameter_body_boundary_token() -> Option<TSXToken>
fn get_parameter_body_boundary_token() -> Option<TSXToken>
For [crate::ArrowFunction
]
Sourcefn parameters_from_reader<T: ToString>(
reader: &mut impl TokenReader<TSXToken, TokenStart>,
state: &mut ParsingState,
options: &ParseOptions,
) -> ParseResult<FunctionParameters<Self::LeadingParameter, Self::ParameterVisibility>>
fn parameters_from_reader<T: ToString>( reader: &mut impl TokenReader<TSXToken, TokenStart>, state: &mut ParsingState, options: &ParseOptions, ) -> ParseResult<FunctionParameters<Self::LeadingParameter, Self::ParameterVisibility>>
For [crate::ArrowFunction
]
Sourcefn parameters_to_string_from_buffer<T: ToString>(
buf: &mut T,
parameters: &FunctionParameters<Self::LeadingParameter, Self::ParameterVisibility>,
options: &ToStringOptions,
local: LocalToStringInformation,
)
fn parameters_to_string_from_buffer<T: ToString>( buf: &mut T, parameters: &FunctionParameters<Self::LeadingParameter, Self::ParameterVisibility>, options: &ToStringOptions, local: LocalToStringInformation, )
For [crate::ArrowFunction
]
Sourcefn parameter_body_boundary_token_to_string_from_buffer<T: ToString>(
buf: &mut T,
options: &ToStringOptions,
)
fn parameter_body_boundary_token_to_string_from_buffer<T: ToString>( buf: &mut T, options: &ToStringOptions, )
For [crate::ArrowFunction
]
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.