pub enum Declaration {
Import(Span<Import>),
Buses(Span<Vec<Bus>>),
Constant(Constant),
EvaluatorFunction(EvaluatorFunction),
Function(Function),
PeriodicColumns(Span<Vec<PeriodicColumn>>),
PublicInputs(Span<Vec<PublicInput>>),
Trace(Span<Vec<TraceSegment>>),
BoundaryConstraints(Span<Vec<Statement>>),
IntegrityConstraints(Span<Vec<Statement>>),
}Expand description
Represents all of the top-level items permitted at module scope.
Variants§
Import(Span<Import>)
Import one or more items from the specified AirScript module to the current module
Buses(Span<Vec<Bus>>)
A Bus section declaration
Constant(Constant)
A constant value declaration
EvaluatorFunction(EvaluatorFunction)
An evaluator function definition
Evaluator functions can be defined in any module of the program
Function(Function)
A pure function definition
Pure functions can be defined in any module of the program
PeriodicColumns(Span<Vec<PeriodicColumn>>)
A periodic_columns section declaration
This may appear any number of times in the program, and may be declared in any module.
PublicInputs(Span<Vec<PublicInput>>)
A public_inputs section declaration
There may only be one of these in the entire program, and it must
appear in the root AirScript module, i.e. in a module declared with def
Trace(Span<Vec<TraceSegment>>)
A trace_bindings section declaration
There may only be one of these in the entire program, and it must
appear in the root AirScript module, i.e. in a module declared with def
BoundaryConstraints(Span<Vec<Statement>>)
A boundary_constraints section declaration
There may only be one of these in the entire program, and it must
appear in the root AirScript module, i.e. in a module declared with def
IntegrityConstraints(Span<Vec<Statement>>)
A integrity_constraints section declaration
There may only be one of these in the entire program, and it must
appear in the root AirScript module, i.e. in a module declared with def
Trait Implementations§
Source§impl Debug for Declaration
impl Debug for Declaration
Source§impl PartialEq for Declaration
impl PartialEq for Declaration
Source§impl Spanned for Declaration
impl Spanned for Declaration
fn span(&self) -> SourceSpan
impl Eq for Declaration
impl StructuralPartialEq for Declaration
Auto Trait Implementations§
impl Freeze for Declaration
impl RefUnwindSafe for Declaration
impl Send for Declaration
impl Sync for Declaration
impl Unpin for Declaration
impl UnwindSafe for Declaration
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<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<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