Skip to main content

Command

Enum Command 

Source
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>

Source

pub fn is_async(&self) -> bool

Returns true if the command is an async instruction.

Source

pub fn is_await(&self) -> bool

Returns true if the command is an await command.

Source

pub fn is_call(&self) -> bool

Returns true if the command is a call instruction.

Source

pub fn is_cast_to_record(&self) -> bool

Returns true if the command is a cast to record instruction.

Source

pub fn is_write(&self) -> bool

Returns true if the command is a write operation.

Source

pub fn branch_to(&self) -> Option<&Identifier<N>>

Returns the branch target, if the command is a branch command. Otherwise, returns None.

Source

pub fn position(&self) -> Option<&Identifier<N>>

Returns the position name, if the command is a position command. Otherwise, returns None.

Source

pub fn destinations(&self) -> Vec<Register<N>>

Returns the destination registers of the command.

Source

pub fn operands(&self) -> &[Operand<N>]

Returns the operands of the command.

Source

pub fn finalize( &self, stack: &impl StackTrait<N>, store: &impl FinalizeStoreTrait<N>, registers: &mut impl FinalizeRegistersState<N>, ) -> Result<Option<FinalizeOperation<N>>>

Finalizes the command.

Source

pub fn contains_external_struct(&self) -> bool

Returns whether this commands refers to an external struct.

Source

pub fn contains_string_type(&self) -> bool

Returns true if the command contains a string type.

Source

pub fn contains_identifier_type(&self) -> Result<bool>

Returns true if the command contains an identifier type in its cast type.

Source

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: Clone + Network> Clone for Command<N>

Source§

fn clone(&self) -> Command<N>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<N: Network> Debug for Command<N>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Prints the command as a string.

Source§

impl<N: Network> Display for Command<N>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Prints the command as a string.

Source§

impl<N: Network> FromBytes for Command<N>

Source§

fn read_le<R: Read>(reader: R) -> IoResult<Self>

Reads the command from a buffer.

Source§

fn from_bytes_le(bytes: &[u8]) -> Result<Self, Error>
where Self: Sized,

Returns Self from a byte array in little-endian order.
Source§

fn from_bytes_le_unchecked(bytes: &[u8]) -> Result<Self, Error>
where Self: Sized,

Same behavior as Self::from_bytes_le but avoids costly checks. This shall only be called when deserializing from a trusted source, such as local storage. Read more
Source§

fn read_le_unchecked<R>(reader: R) -> Result<Self, Error>
where R: Read, Self: Sized,

Same behavior as Self::read_le but avoids costly checks. This shall only be called when deserializing from a trusted source, such as local storage. Read more
Source§

fn read_le_with_unchecked<R>(reader: R, unchecked: bool) -> Result<Self, Error>
where R: Read, Self: Sized,

Helper function that deserializes either unchecked or checked based on the given boolean flag.
Source§

impl<N: Network> FromStr for Command<N>

Source§

fn from_str(string: &str) -> Result<Self>

Parses the string into the command.

Source§

type Err = Error

The associated error which can be returned from parsing.
Source§

impl<N: Hash + Network> Hash for Command<N>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<N: Network> Parser for Command<N>

Source§

fn parse(string: &str) -> ParserResult<'_, Self>

Parses the string into the command.

Source§

impl<N: PartialEq + Network> PartialEq for Command<N>

Source§

fn eq(&self, other: &Command<N>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<N: Network> ToBytes for Command<N>

Source§

fn write_le<W: Write>(&self, writer: W) -> IoResult<()>

Writes the command to a buffer.

Source§

fn to_bytes_le(&self) -> Result<Vec<u8>, Error>
where Self: Sized,

Returns self as a byte array in little-endian order.
Source§

impl<N: Eq + Network> Eq for Command<N>

Source§

impl<N: Network> StructuralPartialEq for Command<N>

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToSmolStr for T
where T: Display + ?Sized,

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T> ToStringFallible for T
where T: Display,

Source§

fn try_to_string(&self) -> Result<String, TryReserveError>

ToString::to_string, but without panic on OOM.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more