FunctionDefinition
std::meta::function_def
contains methods on the built-in FunctionDefinition
type representing
a function definition in the source program.
Methods
add_attribute
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
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
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
comptime fn is_unconstrained(self) -> bool {}
Returns true if this function is unconstrained.
module
comptime fn module(self) -> Module {}
Returns the module where the function is defined.
name
comptime fn name(self) -> Quoted {}
Returns the name of the function.
parameters
comptime fn parameters(self) -> [(Quoted, Type)] {}
Returns each parameter of the function as a tuple of (parameter pattern, parameter type).
return_type
comptime fn return_type(self) -> Type {}
The return type of the function.
set_body
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
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
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
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
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.