pub struct Function {
pub span: SourceSpan,
pub name: Identifier,
pub params: Vec<(Identifier, Type)>,
pub return_type: Type,
pub body: Vec<Statement>,
}Expand description
Functions take a group of expressions as parameters and returns a value.
The result value of a function may be a felt, vector, or a matrix.
NOTE: Functions do not take trace bindings as parameters.
Fields§
§span: SourceSpan§name: Identifier§params: Vec<(Identifier, Type)>§return_type: Type§body: Vec<Statement>Implementations§
Source§impl Function
impl Function
Sourcepub const fn new(
span: SourceSpan,
name: Identifier,
params: Vec<(Identifier, Type)>,
return_type: Type,
body: Vec<Statement>,
) -> Self
pub const fn new( span: SourceSpan, name: Identifier, params: Vec<(Identifier, Type)>, return_type: Type, body: Vec<Statement>, ) -> Self
Creates a new function.
pub fn param_types(&self) -> Vec<Type>
Trait Implementations§
impl Eq for Function
Auto Trait Implementations§
impl Freeze for Function
impl RefUnwindSafe for Function
impl Send for Function
impl Sync for Function
impl Unpin for Function
impl UnwindSafe for Function
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
Mutably borrows from an owned value. Read more
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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>
Converts
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>
Converts
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