Struct UsonicCore

Source
pub struct UsonicCore { /* private fields */ }
Expand description

ALU Core extension for USONIC ISA.

Implementations§

Source§

impl UsonicCore

Source

pub fn has_data(&mut self, cat: IoCat, context: &VmContext<'_>) -> bool

Checks are there more state values remain in the given category.

Source

pub fn get_ui_inro(&self) -> u16

Get the current index for a destructible input.

Source

pub fn load(&mut self, cat: IoCat, context: &VmContext<'_>) -> bool

Loads next StateValue (basing on iterator position from UI indexes) of a given category into the EA-ED registers, increasing UI iterator count.

Source

pub fn set_ed_eb(&mut self, data: Option<(AuthToken, bool)>) -> bool

Sets EA and EB registers to the field elements representing the given pair of values.

Source

pub fn set_ea_ed_opt(&mut self, data: Option<StateValue>) -> bool

Sets EA-ED registers to the field elements representing the given value.

Source

pub fn set_ea_ed(&mut self, data: StateValue)

Sets EA-ED registers to the field elements representing the given value.

Source

pub fn set_inro_index(&mut self, index: u16)

Sets UI register for the destructible input to point at a specific input index.

Source

pub fn reset(&mut self, cat: IoCat)

Reset a value (set to zero) of the UI register.

Trait Implementations§

Source§

impl Clone for UsonicCore

Source§

fn clone(&self) -> UsonicCore

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 CoreExt for UsonicCore

Source§

type Reg = RegE

A type of registers provided by the ISA.
Source§

type Config = GfaConfig

A configuration used in initializing the core extension.
Source§

fn with(config: <UsonicCore as CoreExt>::Config) -> UsonicCore

Constructs the core extensions to be added to AluVM core.
Source§

fn get( &self, reg: <UsonicCore as CoreExt>::Reg, ) -> Option<<<UsonicCore as CoreExt>::Reg as Register>::Value>

Read the value of a register.
Source§

fn clr(&mut self, reg: <UsonicCore as CoreExt>::Reg)

Clear the register by setting it to None.
Source§

fn put( &mut self, reg: <UsonicCore as CoreExt>::Reg, val: Option<<<UsonicCore as CoreExt>::Reg as Register>::Value>, )

Put either a value or None to the register.
Source§

fn reset(&mut self)

Reset the core extension by setting all the registers to None.
Source§

fn set(&mut self, reg: Self::Reg, val: <Self::Reg as Register>::Value)

Set the register to the provided value.
Source§

impl Debug for UsonicCore

Source§

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

Formats the value using the given formatter. Read more
Source§

impl PartialEq for UsonicCore

Source§

fn eq(&self, other: &UsonicCore) -> 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 Supercore<GfaCore> for UsonicCore

Source§

fn subcore(&self) -> GfaCore

An ISA extension subcore.
Source§

fn merge_subcore(&mut self, subcore: GfaCore)

Merge the values generated in the subcore ISA extension with the main core.
Source§

impl Supercore<NoExt> for UsonicCore

Source§

fn subcore(&self) -> NoExt

An ISA extension subcore.
Source§

fn merge_subcore(&mut self, _subcore: NoExt)

Merge the values generated in the subcore ISA extension with the main core.
Source§

impl Copy for UsonicCore

Source§

impl Eq for UsonicCore

Source§

impl StructuralPartialEq for UsonicCore

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, 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> 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, 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<T> VerifyEq for T
where T: Eq,

Source§

fn verify_eq(&self, other: &T) -> bool

Verifies commit-equivalence of two instances of the same type.