#[repr(u8)]pub enum Opcode {
Stack(Stack),
Pred(Pred),
Alu(Alu),
Access(Access),
Crypto(Crypto),
TotalControlFlow(TotalControlFlow),
Memory(Memory),
ParentMemory(ParentMemory),
StateRead(StateRead),
Compute(Compute),
}
Expand description
All operations available to the Essential VM execution.
Variants§
Stack(Stack)
Operations related to stack manipulation.
Pred(Pred)
Operations for computing predicates.
Alu(Alu)
Operations for computing arithmetic and logic.
Access(Access)
Operations for accessing input data.
Crypto(Crypto)
Operations providing cryptographic functionality.
TotalControlFlow(TotalControlFlow)
Control flow operations that keep the program total.
Memory(Memory)
Operations for memory.
ParentMemory(ParentMemory)
Operations for reading parent memory from within a compute context.
StateRead(StateRead)
Operations related to reading state.
Compute(Compute)
Operations related to VM compute execution.
Trait Implementations§
Source§impl From<ParentMemory> for Op
impl From<ParentMemory> for Op
Source§fn from(subgroup: ParentMemory) -> Op
fn from(subgroup: ParentMemory) -> Op
Converts to this type from the input type.
Source§impl From<TotalControlFlow> for Op
impl From<TotalControlFlow> for Op
Source§fn from(subgroup: TotalControlFlow) -> Op
fn from(subgroup: TotalControlFlow) -> Op
Converts to this type from the input type.
Source§impl Ord for Op
impl Ord for Op
Source§impl ParseOp for Op
impl ParseOp for Op
Source§fn parse_op(
&self,
bytes: &mut impl Iterator<Item = u8>,
) -> Result<<Op as ParseOp>::Op, <Op as ParseOp>::Error>
fn parse_op( &self, bytes: &mut impl Iterator<Item = u8>, ) -> Result<<Op as ParseOp>::Op, <Op as ParseOp>::Error>
Attempt to parse the operation associated with the opcode from the given bytes.
Only consumes the bytes necessary to construct any associated data.
Returns an error in the case that the given bytes
iterator
contains insufficient bytes to parse the op.
Source§type Error = NotEnoughBytesError
type Error = NotEnoughBytesError
Any error that might occur while parsing.
Source§impl PartialOrd for Op
impl PartialOrd for Op
impl Copy for Op
impl Eq for Op
impl StructuralPartialEq for Op
Auto Trait Implementations§
impl Freeze for Op
impl RefUnwindSafe for Op
impl Send for Op
impl Sync for Op
impl Unpin for Op
impl UnwindSafe for Op
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<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