pub enum Command<N: Network> {
Show 14 variants
Instruction(Instruction<N>),
Await(Await<N>),
Contains(Contains<N>),
ContainsDynamic(ContainsDynamic<N>),
Get(Get<N>),
GetDynamic(GetDynamic<N>),
GetOrUse(GetOrUse<N>),
GetOrUseDynamic(GetOrUseDynamic<N>),
RandChaCha(RandChaCha<N>),
Remove(Remove<N>),
Set(Set<N>),
BranchEq(BranchEq<N>),
BranchNeq(BranchNeq<N>),
Position(Position<N>),
}Variants§
Instruction(Instruction<N>)
Evaluates the instruction.
Await(Await<N>)
Awaits the result of a future.
Contains(Contains<N>)
Returns true if the key operand is present in mapping, and stores the result into destination.
ContainsDynamic(ContainsDynamic<N>)
Resolves the program and mapping operands, returns true if the key operand is present in the mapping, and stores the result into destination.
Get(Get<N>)
Gets the value stored at the key operand in mapping and stores the result into destination.
GetDynamic(GetDynamic<N>)
Resolves the program and mapping operands, gets the value stored at the key operand in mapping, and stores the result into destination.
GetOrUse(GetOrUse<N>)
Gets the value stored at the key operand in mapping and stores the result into destination.
If the key is not present, default is stored into destination.
GetOrUseDynamic(GetOrUseDynamic<N>)
Resolves the program and mapping operands, gets the value stored at the key operand in mapping, and stores the result into destination.
If the key is not present, default is stored into destination.
RandChaCha(RandChaCha<N>)
Generates a random value using the rand.chacha command and stores the result into destination.
Remove(Remove<N>)
Removes the (key, value) entry from the mapping.
Set(Set<N>)
Sets the value stored at the key operand in the mapping to value.
BranchEq(BranchEq<N>)
Jumps to the position, if first equals second.
BranchNeq(BranchNeq<N>)
Jumps to the position, if first does not equal second.
Position(Position<N>)
Indicates a position to which the program can branch to.
Implementations§
Source§impl<N: Network> Command<N>
impl<N: Network> Command<N>
Sourcepub fn is_cast_to_record(&self) -> bool
pub fn is_cast_to_record(&self) -> bool
Returns true if the command is a cast to record instruction.
Sourcepub fn branch_to(&self) -> Option<&Identifier<N>>
pub fn branch_to(&self) -> Option<&Identifier<N>>
Returns the branch target, if the command is a branch command.
Otherwise, returns None.
Sourcepub fn position(&self) -> Option<&Identifier<N>>
pub fn position(&self) -> Option<&Identifier<N>>
Returns the position name, if the command is a position command.
Otherwise, returns None.
Sourcepub fn destinations(&self) -> Vec<Register<N>>
pub fn destinations(&self) -> Vec<Register<N>>
Returns the destination registers of the command.
Sourcepub fn finalize(
&self,
stack: &impl StackTrait<N>,
store: &impl FinalizeStoreTrait<N>,
registers: &mut impl FinalizeRegistersState<N>,
) -> Result<Option<FinalizeOperation<N>>>
pub fn finalize( &self, stack: &impl StackTrait<N>, store: &impl FinalizeStoreTrait<N>, registers: &mut impl FinalizeRegistersState<N>, ) -> Result<Option<FinalizeOperation<N>>>
Finalizes the command.
Sourcepub fn contains_external_struct(&self) -> bool
pub fn contains_external_struct(&self) -> bool
Returns whether this commands refers to an external struct.
Sourcepub fn contains_string_type(&self) -> bool
pub fn contains_string_type(&self) -> bool
Returns true if the command contains a string type.
Sourcepub fn contains_identifier_type(&self) -> Result<bool>
pub fn contains_identifier_type(&self) -> Result<bool>
Returns true if the command contains an identifier type in its cast type.
Sourcepub fn exceeds_max_array_size(&self, max_array_size: u32) -> bool
pub fn exceeds_max_array_size(&self, max_array_size: u32) -> bool
Returns true if the command contains an array type with a size that exceeds the given maximum.
Trait Implementations§
Source§impl<N: Network> FromBytes for Command<N>
impl<N: Network> FromBytes for Command<N>
Source§fn from_bytes_le(bytes: &[u8]) -> Result<Self, Error>where
Self: Sized,
fn from_bytes_le(bytes: &[u8]) -> Result<Self, Error>where
Self: Sized,
Self from a byte array in little-endian order.Source§fn from_bytes_le_unchecked(bytes: &[u8]) -> Result<Self, Error>where
Self: Sized,
fn from_bytes_le_unchecked(bytes: &[u8]) -> Result<Self, Error>where
Self: Sized,
Self::from_bytes_le but avoids costly checks.
This shall only be called when deserializing from a trusted source, such as local storage. Read moreSource§fn read_le_unchecked<R>(reader: R) -> Result<Self, Error>
fn read_le_unchecked<R>(reader: R) -> Result<Self, Error>
Self::read_le but avoids costly checks.
This shall only be called when deserializing from a trusted source, such as local storage. Read moreSource§impl<N: Network> Parser for Command<N>
impl<N: Network> Parser for Command<N>
Source§fn parse(string: &str) -> ParserResult<'_, Self>
fn parse(string: &str) -> ParserResult<'_, Self>
Parses the string into the command.
impl<N: Eq + Network> Eq for Command<N>
impl<N: Network> StructuralPartialEq for Command<N>
Auto Trait Implementations§
impl<N> Freeze for Command<N>where
<N as Environment>::Field: Freeze,
<N as Environment>::Projective: Freeze,
<N as Environment>::Scalar: Freeze,
impl<N> RefUnwindSafe for Command<N>where
<N as Environment>::Field: RefUnwindSafe,
N: RefUnwindSafe,
<N as Environment>::Projective: RefUnwindSafe,
<N as Environment>::Scalar: RefUnwindSafe,
impl<N> Send for Command<N>
impl<N> Sync for Command<N>
impl<N> Unpin for Command<N>where
<N as Environment>::Field: Unpin,
N: Unpin,
<N as Environment>::Projective: Unpin,
<N as Environment>::Scalar: Unpin,
impl<N> UnsafeUnpin for Command<N>where
<N as Environment>::Field: UnsafeUnpin,
<N as Environment>::Projective: UnsafeUnpin,
<N as Environment>::Scalar: UnsafeUnpin,
impl<N> UnwindSafe for Command<N>where
<N as Environment>::Field: UnwindSafe,
N: UnwindSafe,
<N as Environment>::Projective: UnwindSafe,
<N as Environment>::Scalar: UnwindSafe,
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<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.