Struct ezno_parser::functions::FunctionBase
source · pub struct FunctionBase<T: FunctionBased> {
pub header: T::Header,
pub name: T::Name,
pub type_parameters: Option<Vec<GenericTypeConstraint>>,
pub parameters: FunctionParameters,
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<GenericTypeConstraint>>
§parameters: FunctionParameters
§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, Span>, state: &mut ParsingState, settings: &ParseOptions ) -> ParseResult<Self>
fn to_string_from_buffer<TS: ToString>( &self, buf: &mut TS, settings: &ToStringOptions, depth: u8 )
source§fn get_position(&self) -> Cow<'_, Span>
fn get_position(&self) -> Cow<'_, Span>
Returns position of node as span AS IT WAS PARSED. May be none if AST was doesn’t match anything in source
source§fn from_string(
source: String,
settings: ParseOptions,
source_id: SourceId,
offset: Option<usize>,
cursors: Vec<(usize, EmptyCursorId)>
) -> ParseResult<Self>
fn from_string( source: String, settings: ParseOptions, source_id: SourceId, offset: Option<usize>, cursors: Vec<(usize, EmptyCursorId)> ) -> ParseResult<Self>
From string, with default impl to call abstract method from_reader
source§fn to_string(&self, settings: &ToStringOptions) -> String
fn to_string(&self, settings: &ToStringOptions) -> String
Returns structure as valid string
source§impl<T: Clone + FunctionBased> Clone for FunctionBase<T>where
T::Header: Clone,
T::Name: Clone,
T::Body: Clone,
impl<T: Clone + FunctionBased> Clone for FunctionBase<T>where T::Header: Clone, T::Name: 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::Body: Debug,
impl<T: Debug + FunctionBased> Debug for FunctionBase<T>where T::Header: Debug, T::Name: Debug, T::Body: Debug,
source§impl<T: FunctionBased> PartialEq<FunctionBase<T>> for FunctionBase<T>where
T::Header: PartialEq,
T::Name: PartialEq,
T::Body: PartialEq,
impl<T: FunctionBased> PartialEq<FunctionBase<T>> for FunctionBase<T>where T::Header: PartialEq, T::Name: PartialEq, T::Body: PartialEq,
source§impl<T: FunctionBased> SelfRustTokenize for FunctionBase<T>
impl<T: FunctionBased> SelfRustTokenize for FunctionBase<T>
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> Visitable for FunctionBase<T>where
T::Body: Visitable,
impl<T: FunctionBased> Visitable for FunctionBase<T>where T::Body: Visitable,
Visiting logic: TODO make visiting macro better and remove
fn visit<TData>( &self, visitors: &mut (impl VisitorReceiver<TData> + ?Sized), data: &mut TData, settings: &VisitSettings, chain: &mut Annex<'_, Chain> )
fn visit_mut<TData>( &mut self, visitors: &mut (impl VisitorMutReceiver<TData> + ?Sized), data: &mut TData, settings: &VisitSettings, chain: &mut Annex<'_, Chain> )
impl<T: FunctionBased> Eq for FunctionBase<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for FunctionBase<T>where <T as FunctionBased>::Body: RefUnwindSafe, <T as FunctionBased>::Header: RefUnwindSafe, <T as FunctionBased>::Name: RefUnwindSafe,
impl<T> Send for FunctionBase<T>
impl<T> Sync for FunctionBase<T>
impl<T> Unpin for FunctionBase<T>where <T as FunctionBased>::Body: Unpin, <T as FunctionBased>::Header: Unpin, <T as FunctionBased>::Name: Unpin,
impl<T> UnwindSafe for FunctionBase<T>where <T as FunctionBased>::Body: UnwindSafe, <T as FunctionBased>::Header: UnwindSafe, <T as FunctionBased>::Name: 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