Struct ezno_parser::functions::FunctionBase
source · pub struct FunctionBase<T: FunctionBased> {
pub function_id: FunctionId<T>,
pub header: T::Header,
pub name: T::Name,
pub type_parameters: Option<Vec<GenericTypeConstraint>>,
pub parameters: FunctionParameters,
pub return_type: Option<TypeReference>,
pub body: T::Body,
}
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§
§function_id: FunctionId<T>
TODO should be private
header: T::Header
§name: T::Name
§type_parameters: Option<Vec<GenericTypeConstraint>>
§parameters: FunctionParameters
§return_type: Option<TypeReference>
§body: T::Body
Implementations§
source§impl<T: FunctionBased> FunctionBase<T>
impl<T: FunctionBased> FunctionBase<T>
pub fn get_function_id(&self) -> FunctionId<T>
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: &ParseSettings ) -> ParseResult<Self>
fn to_string_from_buffer<TS: ToString>( &self, buf: &mut TS, settings: &ToStringSettingsAndData, 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: ParseSettings,
source_id: SourceId,
offset: Option<usize>,
cursors: Vec<(usize, EmptyCursorId)>
) -> ParseResult<ParseOutput<Self>>
fn from_string( source: String, settings: ParseSettings, source_id: SourceId, offset: Option<usize>, cursors: Vec<(usize, EmptyCursorId)> ) -> ParseResult<ParseOutput<Self>>
From string, with default impl to call abstract method from_reader
source§fn to_string(&self, settings: &ToStringSettingsAndData) -> String
fn to_string(&self, settings: &ToStringSettingsAndData) -> 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