pub struct FunctionExpression { /* private fields */ }
Expand description
Represents a function expression.
A function expression defines an anonymous function with parameters, a body, and optional features like variadics, return types, and generic parameters.
local add = function(a: number, b: number): number
return a + b
end
Implementations§
Source§impl FunctionExpression
impl FunctionExpression
Sourcepub fn new(
block: Block,
parameters: Vec<TypedIdentifier>,
is_variadic: bool,
) -> Self
pub fn new( block: Block, parameters: Vec<TypedIdentifier>, is_variadic: bool, ) -> Self
Creates a new function expression with the given block, parameters, and variadic flag.
Sourcepub fn from_block<B: Into<Block>>(block: B) -> Self
pub fn from_block<B: Into<Block>>(block: B) -> Self
Creates a new function expression from a block with no parameters.
Sourcepub fn with_parameters(self, parameters: Vec<TypedIdentifier>) -> Self
pub fn with_parameters(self, parameters: Vec<TypedIdentifier>) -> Self
Sets the parameters of this function expression.
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 expression.
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 of this function expression.
This also marks the function as variadic if it is not already.
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 of this function expression.
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 of this function expression.
Sourcepub fn get_return_type(&self) -> Option<&FunctionReturnType>
pub fn get_return_type(&self) -> Option<&FunctionReturnType>
Returns a reference to the return type of this function expression, if any.
Sourcepub fn has_return_type(&self) -> bool
pub fn has_return_type(&self) -> bool
Returns whether this function expression 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 of this function expression, if any.
Sourcepub fn variadic(self) -> Self
pub fn variadic(self) -> Self
Marks this function expression as variadic and returns the updated expression.
Sourcepub fn set_variadic(&mut self, is_variadic: bool)
pub fn set_variadic(&mut self, is_variadic: bool)
Sets whether this function expression is variadic.
If set to false, the variadic type is cleared if present.
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 of this function expression.
This also marks the function as variadic if it is not already.
Sourcepub fn get_variadic_type(&self) -> Option<&FunctionVariadicType>
pub fn get_variadic_type(&self) -> Option<&FunctionVariadicType>
Returns a reference to the variadic type of this function expression, if any.
Sourcepub fn has_variadic_type(&self) -> bool
pub fn has_variadic_type(&self) -> bool
Returns whether this function expression 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 of this function expression, 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 of this function expression and returns the updated expression.
Sourcepub fn set_generic_parameters(&mut self, generic_parameters: GenericParameters)
pub fn set_generic_parameters(&mut self, generic_parameters: GenericParameters)
Sets the generic parameters of this function expression.
Sourcepub fn get_generic_parameters(&self) -> Option<&GenericParameters>
pub fn get_generic_parameters(&self) -> Option<&GenericParameters>
Returns a reference to the generic parameters of this function expression, if any.
Sourcepub fn is_generic(&self) -> bool
pub fn is_generic(&self) -> bool
Returns whether this function expression has generic parameters.
Sourcepub fn with_tokens(self, tokens: FunctionBodyTokens) -> Self
pub fn with_tokens(self, tokens: FunctionBodyTokens) -> Self
Associates a token with this function expression.
Sourcepub fn set_tokens(&mut self, tokens: FunctionBodyTokens)
pub fn set_tokens(&mut self, tokens: FunctionBodyTokens)
Associates a token with this function expression.
Sourcepub fn get_tokens(&self) -> Option<&FunctionBodyTokens>
pub fn get_tokens(&self) -> Option<&FunctionBodyTokens>
Returns a reference to the token attached to this function expression, if any.
Sourcepub fn get_block(&self) -> &Block
pub fn get_block(&self) -> &Block
Returns a reference to the block of this function expression.
Sourcepub fn get_parameters(&self) -> &Vec<TypedIdentifier>
pub fn get_parameters(&self) -> &Vec<TypedIdentifier>
Returns a reference to the parameters of this function expression.
Sourcepub fn iter_parameters(&self) -> impl Iterator<Item = &TypedIdentifier>
pub fn iter_parameters(&self) -> impl Iterator<Item = &TypedIdentifier>
Returns an iterator over the parameters of this function expression.
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 parameters of this function expression.
Sourcepub fn is_variadic(&self) -> bool
pub fn is_variadic(&self) -> bool
Returns whether this function expression is variadic.
Sourcepub fn mutate_block(&mut self) -> &mut Block
pub fn mutate_block(&mut self) -> &mut Block
Returns a mutable reference to the block of this function expression.
Sourcepub fn mutate_parameters(&mut self) -> &mut Vec<TypedIdentifier>
pub fn mutate_parameters(&mut self) -> &mut Vec<TypedIdentifier>
Returns a mutable reference to the parameters of this function expression.
Sourcepub fn parameters_count(&self) -> usize
pub fn parameters_count(&self) -> usize
Returns the number of parameters of this function expression.
Sourcepub fn has_parameters(&self) -> bool
pub fn has_parameters(&self) -> bool
Returns whether this function expression has parameters.
Sourcepub fn clear_types(&mut self)
pub fn clear_types(&mut self)
Removes all type information from this function expression.
This includes 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 function expression, 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 function expression, 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 FunctionExpression
impl Clone for FunctionExpression
Source§fn clone(&self) -> FunctionExpression
fn clone(&self) -> FunctionExpression
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for FunctionExpression
impl Debug for FunctionExpression
Source§impl Default for FunctionExpression
impl Default for FunctionExpression
Source§fn default() -> FunctionExpression
fn default() -> FunctionExpression
Source§impl From<FunctionExpression> for Expression
impl From<FunctionExpression> for Expression
Source§fn from(function: FunctionExpression) -> Self
fn from(function: FunctionExpression) -> Self
Source§impl PartialEq for FunctionExpression
impl PartialEq for FunctionExpression
impl Eq for FunctionExpression
impl StructuralPartialEq for FunctionExpression
Auto Trait Implementations§
impl Freeze for FunctionExpression
impl RefUnwindSafe for FunctionExpression
impl Send for FunctionExpression
impl Sync for FunctionExpression
impl Unpin for FunctionExpression
impl UnwindSafe for FunctionExpression
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