Trait ezno_parser::functions::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]

Object Safety§

This trait is not object safe.

Implementors§