Trait FunctionBased

Source
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§

Source

type Header: Debug + Clone + PartialEq + Send + Sync

Includes a keyword and/or modifiers

Source

type Name: Debug + Clone + PartialEq + Send + Sync

A name of the function

Source

type LeadingParameter: LeadingParameter + Serialize

Cfg to make up for the fact serde_derive does not use syn_helpers

Source

type ParameterVisibility: ParameterVisibility + Serialize

Cfg to make up for the fact serde_derive does not use syn_helpers

Source

type Body: ASTNode

The body of the function

Required Methods§

Source

fn get_name(name: &Self::Name) -> Option<&str>

For debugging only

Source

fn header_and_name_from_reader( reader: &mut impl TokenReader<TSXToken, TokenStart>, state: &mut ParsingState, options: &ParseOptions, ) -> ParseResult<(HeadingAndPosition<Self>, Self::Name)>

Source

fn header_and_name_to_string_from_buffer<T: ToString>( buf: &mut T, header: &Self::Header, name: &Self::Name, options: &ToStringOptions, local: LocalToStringInformation, )

Source

fn visit_name<TData>( name: &Self::Name, visitors: &mut (impl VisitorReceiver<TData> + ?Sized), data: &mut TData, options: &VisitOptions, chain: &mut Annex<'_, Chain>, )

Source

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§

Source

fn get_parameter_body_boundary_token() -> Option<TSXToken>

For [crate::ArrowFunction]

Source

fn has_body(_: &Self::Body) -> bool

For overloading

Source

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]

Source

fn parameters_to_string_from_buffer<T: ToString>( buf: &mut T, parameters: &FunctionParameters<Self::LeadingParameter, Self::ParameterVisibility>, options: &ToStringOptions, local: LocalToStringInformation, )

For [crate::ArrowFunction]

Source

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.

Implementors§