pub struct FunctionBase<T: FunctionBased> {
pub header: T::Header,
pub name: T::Name,
pub type_parameters: Option<Vec<TypeParameter>>,
pub parameters: FunctionParameters<T::LeadingParameter, T::ParameterVisibility>,
pub return_type: Option<TypeAnnotation>,
pub body: T::Body,
pub position: Span,
}
Expand description
Base for all function based structures with bodies (no interface, type reference etc)
Note: the PartialEq
implementation is based on syntactical representation rather than [FunctionId
] equality
Fields§
§header: T::Header
§name: T::Name
§type_parameters: Option<Vec<TypeParameter>>
§parameters: FunctionParameters<T::LeadingParameter, T::ParameterVisibility>
§return_type: Option<TypeAnnotation>
§body: T::Body
§position: Span
Trait Implementations§
Source§impl<T: FunctionBased + 'static> ASTNode for FunctionBase<T>
impl<T: FunctionBased + 'static> ASTNode for FunctionBase<T>
fn from_reader( reader: &mut impl TokenReader<TSXToken, TokenStart>, state: &mut ParsingState, options: &ParseOptions, ) -> ParseResult<Self>
fn to_string_from_buffer<TS: ToString>( &self, buf: &mut TS, options: &ToStringOptions, local: LocalToStringInformation, )
Source§fn get_position(&self) -> Span
fn get_position(&self) -> Span
Returns position of node as span AS IT WAS PARSED. May be
Span::NULL
if AST was doesn’t match anything in sourceSource§fn from_string(script: String, options: ParseOptions) -> ParseResult<Self>
fn from_string(script: String, options: ParseOptions) -> ParseResult<Self>
From string, with default impl to call abstract method
from_reader
fn from_string_with_options( script: String, options: ParseOptions, offset: Option<u32>, ) -> ParseResult<(Self, ParsingState)>
Source§fn to_string(&self, options: &ToStringOptions) -> String
fn to_string(&self, options: &ToStringOptions) -> String
Returns structure as valid string
Source§impl<T: Clone + FunctionBased> Clone for FunctionBase<T>where
T::Header: Clone,
T::Name: Clone,
T::LeadingParameter: Clone,
T::ParameterVisibility: Clone,
T::Body: Clone,
impl<T: Clone + FunctionBased> Clone for FunctionBase<T>where
T::Header: Clone,
T::Name: Clone,
T::LeadingParameter: Clone,
T::ParameterVisibility: Clone,
T::Body: Clone,
Source§fn clone(&self) -> FunctionBase<T>
fn clone(&self) -> FunctionBase<T>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<T: Debug + FunctionBased> Debug for FunctionBase<T>where
T::Header: Debug,
T::Name: Debug,
T::LeadingParameter: Debug,
T::ParameterVisibility: Debug,
T::Body: Debug,
impl<T: Debug + FunctionBased> Debug for FunctionBase<T>where
T::Header: Debug,
T::Name: Debug,
T::LeadingParameter: Debug,
T::ParameterVisibility: Debug,
T::Body: Debug,
Source§impl<T: FunctionBased> GetFieldByType<BaseSpan<()>> for FunctionBase<T>
impl<T: FunctionBased> GetFieldByType<BaseSpan<()>> for FunctionBase<T>
Source§impl<T: FunctionBased> PartialEq for FunctionBase<T>where
T::Header: PartialEq,
T::Name: PartialEq,
FunctionParameters<T::LeadingParameter, T::ParameterVisibility>: PartialEq,
T::Body: PartialEq,
impl<T: FunctionBased> PartialEq for FunctionBase<T>where
T::Header: PartialEq,
T::Name: PartialEq,
FunctionParameters<T::LeadingParameter, T::ParameterVisibility>: PartialEq,
T::Body: PartialEq,
Source§impl<T: FunctionBased> SelfRustTokenize for FunctionBase<T>where
T::Header: SelfRustTokenize,
T::Name: SelfRustTokenize,
FunctionParameters<T::LeadingParameter, T::ParameterVisibility>: SelfRustTokenize,
T::Body: SelfRustTokenize,
impl<T: FunctionBased> SelfRustTokenize for FunctionBase<T>where
T::Header: SelfRustTokenize,
T::Name: SelfRustTokenize,
FunctionParameters<T::LeadingParameter, T::ParameterVisibility>: SelfRustTokenize,
T::Body: SelfRustTokenize,
fn append_to_token_stream(&self, token_stream: &mut TokenStream)
Source§fn to_tokens(&self) -> TokenStream
fn to_tokens(&self) -> TokenStream
Returns the tokens used to construct self
Source§impl<T: FunctionBased> Serialize for FunctionBase<T>
impl<T: FunctionBased> Serialize for FunctionBase<T>
Source§impl<T: FunctionBased> Visitable for FunctionBase<T>
Visiting logic: TODO make visiting macro better and remove
impl<T: FunctionBased> Visitable for FunctionBase<T>
Visiting logic: TODO make visiting macro better and remove
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>, )
impl<T: FunctionBased> Eq for FunctionBase<T>
Auto Trait Implementations§
impl<T> Freeze for FunctionBase<T>where
<T as FunctionBased>::Header: Freeze,
<T as FunctionBased>::Name: Freeze,
<T as FunctionBased>::Body: Freeze,
<T as FunctionBased>::LeadingParameter: Freeze,
impl<T> RefUnwindSafe for FunctionBase<T>where
<T as FunctionBased>::Header: RefUnwindSafe,
<T as FunctionBased>::Name: RefUnwindSafe,
<T as FunctionBased>::Body: RefUnwindSafe,
<T as FunctionBased>::LeadingParameter: RefUnwindSafe,
<T as FunctionBased>::ParameterVisibility: RefUnwindSafe,
impl<T> Send for FunctionBase<T>
impl<T> Sync for FunctionBase<T>
impl<T> Unpin for FunctionBase<T>where
<T as FunctionBased>::Header: Unpin,
<T as FunctionBased>::Name: Unpin,
<T as FunctionBased>::Body: Unpin,
<T as FunctionBased>::LeadingParameter: Unpin,
<T as FunctionBased>::ParameterVisibility: Unpin,
impl<T> UnwindSafe for FunctionBase<T>where
<T as FunctionBased>::Header: UnwindSafe,
<T as FunctionBased>::Name: UnwindSafe,
<T as FunctionBased>::Body: UnwindSafe,
<T as FunctionBased>::LeadingParameter: UnwindSafe,
<T as FunctionBased>::ParameterVisibility: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more