pub struct FunctionStatement { /* private fields */ }
Expand description
Represents a function declaration statement.
Implementations§
Source§impl FunctionStatement
impl FunctionStatement
Sourcepub fn new(
name: FunctionName,
block: Block,
parameters: Vec<TypedIdentifier>,
is_variadic: bool,
) -> Self
pub fn new( name: FunctionName, block: Block, parameters: Vec<TypedIdentifier>, is_variadic: bool, ) -> Self
Creates a new function statement with the given name, block, parameters, and variadic flag.
Sourcepub fn from_name<S: Into<String>, B: Into<Block>>(name: S, block: B) -> Self
pub fn from_name<S: Into<String>, B: Into<Block>>(name: S, block: B) -> Self
Creates a new function statement from a single identifier and a block.
Sourcepub fn with_tokens(self, tokens: FunctionBodyTokens) -> Self
pub fn with_tokens(self, tokens: FunctionBodyTokens) -> Self
Sets the tokens for this function statement.
Sourcepub fn set_tokens(&mut self, tokens: FunctionBodyTokens)
pub fn set_tokens(&mut self, tokens: FunctionBodyTokens)
Sets the tokens for this function statement.
Sourcepub fn get_tokens(&self) -> Option<&FunctionBodyTokens>
pub fn get_tokens(&self) -> Option<&FunctionBodyTokens>
Returns the tokens for this function statement, if any.
Sourcepub fn mutate_tokens(&mut self) -> Option<&mut FunctionBodyTokens>
pub fn mutate_tokens(&mut self) -> Option<&mut FunctionBodyTokens>
Returns a mutable reference to the tokens, if any.
Sourcepub fn with_parameter(self, parameter: impl Into<TypedIdentifier>) -> Self
pub fn with_parameter(self, parameter: impl Into<TypedIdentifier>) -> Self
Adds a parameter to this function.
Sourcepub fn with_variadic_type(self, type: impl Into<FunctionVariadicType>) -> Self
pub fn with_variadic_type(self, type: impl Into<FunctionVariadicType>) -> Self
Sets the variadic type for this function.
Sourcepub fn set_variadic_type(&mut self, type: impl Into<FunctionVariadicType>)
pub fn set_variadic_type(&mut self, type: impl Into<FunctionVariadicType>)
Sets the variadic type for this function.
Sourcepub fn get_variadic_type(&self) -> Option<&FunctionVariadicType>
pub fn get_variadic_type(&self) -> Option<&FunctionVariadicType>
Returns the variadic type, if any.
Sourcepub fn has_variadic_type(&self) -> bool
pub fn has_variadic_type(&self) -> bool
Returns whether this function has a variadic type.
Sourcepub fn mutate_variadic_type(&mut self) -> Option<&mut FunctionVariadicType>
pub fn mutate_variadic_type(&mut self) -> Option<&mut FunctionVariadicType>
Returns a mutable reference to the variadic type, if any.
Sourcepub fn with_return_type(
self,
return_type: impl Into<FunctionReturnType>,
) -> Self
pub fn with_return_type( self, return_type: impl Into<FunctionReturnType>, ) -> Self
Sets the return type for this function.
Sourcepub fn set_return_type(&mut self, return_type: impl Into<FunctionReturnType>)
pub fn set_return_type(&mut self, return_type: impl Into<FunctionReturnType>)
Sets the return type for this function.
Sourcepub fn get_return_type(&self) -> Option<&FunctionReturnType>
pub fn get_return_type(&self) -> Option<&FunctionReturnType>
Returns the return type, if any.
Sourcepub fn has_return_type(&self) -> bool
pub fn has_return_type(&self) -> bool
Returns whether this function has a return type.
Sourcepub fn mutate_return_type(&mut self) -> Option<&mut FunctionReturnType>
pub fn mutate_return_type(&mut self) -> Option<&mut FunctionReturnType>
Returns a mutable reference to the return type, if any.
Sourcepub fn with_generic_parameters(
self,
generic_parameters: GenericParameters,
) -> Self
pub fn with_generic_parameters( self, generic_parameters: GenericParameters, ) -> Self
Sets the generic parameters for this function.
Sourcepub fn set_generic_parameters(&mut self, generic_parameters: GenericParameters)
pub fn set_generic_parameters(&mut self, generic_parameters: GenericParameters)
Sets the generic parameters for this function.
Sourcepub fn get_generic_parameters(&self) -> Option<&GenericParameters>
pub fn get_generic_parameters(&self) -> Option<&GenericParameters>
Returns the generic parameters, if any.
Sourcepub fn get_name(&self) -> &FunctionName
pub fn get_name(&self) -> &FunctionName
Returns a reference to the function’s name.
Sourcepub fn parameters_count(&self) -> usize
pub fn parameters_count(&self) -> usize
Returns the number of parameters in this function.
Sourcepub fn get_parameters(&self) -> &Vec<TypedIdentifier>
pub fn get_parameters(&self) -> &Vec<TypedIdentifier>
Returns a reference to the function’s parameters.
Sourcepub fn iter_parameters(&self) -> impl Iterator<Item = &TypedIdentifier>
pub fn iter_parameters(&self) -> impl Iterator<Item = &TypedIdentifier>
Returns an iterator over the function’s parameters.
Sourcepub fn iter_mut_parameters(
&mut self,
) -> impl Iterator<Item = &mut TypedIdentifier>
pub fn iter_mut_parameters( &mut self, ) -> impl Iterator<Item = &mut TypedIdentifier>
Returns a mutable iterator over the function’s parameters.
Sourcepub fn is_variadic(&self) -> bool
pub fn is_variadic(&self) -> bool
Returns whether this function is variadic.
Sourcepub fn mutate_block(&mut self) -> &mut Block
pub fn mutate_block(&mut self) -> &mut Block
Returns a mutable reference to the function’s block.
Sourcepub fn mutate_function_name(&mut self) -> &mut FunctionName
pub fn mutate_function_name(&mut self) -> &mut FunctionName
Returns a mutable reference to the function’s name.
Sourcepub fn mutate_parameters(&mut self) -> &mut Vec<TypedIdentifier>
pub fn mutate_parameters(&mut self) -> &mut Vec<TypedIdentifier>
Returns a mutable reference to the function’s parameters.
Sourcepub fn remove_method(&mut self)
pub fn remove_method(&mut self)
Removes the method from the function name and adds it as a field, inserting ‘self’ as the first parameter.
If the method is not present, this does nothing.
Sourcepub fn has_parameters(&self) -> bool
pub fn has_parameters(&self) -> bool
Returns whether this function has any parameters.
Sourcepub fn clear_types(&mut self)
pub fn clear_types(&mut self)
Removes all type information from the function, including return type, variadic type, generic parameters, and parameter types.
Sourcepub fn mutate_first_token(&mut self) -> &mut Token
pub fn mutate_first_token(&mut self) -> &mut Token
Returns a mutable reference to the first token for this statement, creating it if missing.
Sourcepub fn mutate_last_token(&mut self) -> &mut Token
pub fn mutate_last_token(&mut self) -> &mut Token
Returns a mutable reference to the last token for this statement, creating it if missing.
Sourcepub fn clear_comments(&mut self)
pub fn clear_comments(&mut self)
Clears all comments from the tokens in this node.
Sourcepub fn clear_whitespaces(&mut self)
pub fn clear_whitespaces(&mut self)
Clears all whitespaces information from the tokens in this node.
Trait Implementations§
Source§impl Clone for FunctionStatement
impl Clone for FunctionStatement
Source§fn clone(&self) -> FunctionStatement
fn clone(&self) -> FunctionStatement
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for FunctionStatement
impl Debug for FunctionStatement
Source§impl From<FunctionStatement> for Statement
impl From<FunctionStatement> for Statement
Source§fn from(function: FunctionStatement) -> Statement
fn from(function: FunctionStatement) -> Statement
Source§impl PartialEq for FunctionStatement
impl PartialEq for FunctionStatement
impl Eq for FunctionStatement
impl StructuralPartialEq for FunctionStatement
Auto Trait Implementations§
impl Freeze for FunctionStatement
impl RefUnwindSafe for FunctionStatement
impl Send for FunctionStatement
impl Sync for FunctionStatement
impl Unpin for FunctionStatement
impl UnwindSafe for FunctionStatement
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<I, T> ExtractContext<I, ()> for T
impl<I, T> ExtractContext<I, ()> for T
Source§fn extract_context(self, _original_input: I)
fn extract_context(self, _original_input: I)
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more