FunctionDefinition
std::meta::function_def
contains methods on the built-in FunctionDefinition
type representing
a function definition in the source program.
Methods
add_attribute
pub comptime fn add_attribute<let N: u32>(self, attribute: str<N>) {}
Adds an attribute to the function. This is only valid on functions in the current crate which have not yet been resolved. This means any functions called at compile-time are invalid targets for this method.
body
pub comptime fn body(self) -> Expr {}
Returns the body of the function as an expression. This is only valid on functions in the current crate which have not yet been resolved. This means any functions called at compile-time are invalid targets for this method.
has_named_attribute
pub comptime fn has_named_attribute<let N: u32>(self, name: str<N>) -> bool {}
Returns true if this function has a custom attribute with the given name.
is_unconstrained
pub comptime fn is_unconstrained(self) -> bool {}
Returns true if this function is unconstrained.
module
pub comptime fn module(self) -> Module {}
Returns the module where the function is defined.
name
pub comptime fn name(self) -> Quoted {}
Returns the name of the function.
parameters
pub comptime fn parameters(self) -> [(Quoted, Type)] {}
Returns each parameter of the function as a tuple of (parameter pattern, parameter type).
return_type
pub comptime fn return_type(self) -> Type {}
The return type of the function.
set_body
pub comptime fn set_body(self, body: Expr) {}
Mutate the function body to a new expression. This is only valid on functions in the current crate which have not yet been resolved. This means any functions called at compile-time are invalid targets for this method.
set_parameters
pub comptime fn set_parameters(self, parameters: [(Quoted, Type)]) {}
Mutates the function's parameters to a new set of parameters. This is only valid on functions in the current crate which have not yet been resolved. This means any functions called at compile-time are invalid targets for this method.
Expects a slice of (parameter pattern, parameter type) for each parameter. Requires each parameter pattern to be a syntactically valid parameter.
set_return_type
pub comptime fn set_return_type(self, return_type: Type) {}
Mutates the function's return type to a new type. This is only valid on functions in the current crate which have not yet been resolved. This means any functions called at compile-time are invalid targets for this method.
set_return_public
pub comptime fn set_return_public(self, public: bool) {}
Mutates the function's return visibility to public (if true
is given) or private (if false
is given).
This is only valid on functions in the current crate which have not yet been resolved.
This means any functions called at compile-time are invalid targets for this method.
set_unconstrained
pub comptime fn set_unconstrained(self, value: bool) {}
Mutates the function to be unconstrained (if true
is given) or not (if false
is given).
This is only valid on functions in the current crate which have not yet been resolved.
This means any functions called at compile-time are invalid targets for this method.
Trait Implementations
impl Eq for FunctionDefinition
impl Hash for FunctionDefinition
Note that each function is assigned a unique ID internally and this is what is used for equality and hashing. So even functions with identical signatures and bodies may not be equal in this sense if they were originally different items in the source program.