pub enum Steps {
    Round(u64),
    Sponge(Sponges),
}
Expand description

Variants of Keccak steps available for the interpreter. These selectors determine the specific behaviour so that Keccak steps can be split into different instances for folding

Variants§

§

Round(u64)

Current step performs a round of the permutation. The round number stored in the Step is only used for the environment execution.

§

Sponge(Sponges)

Current step is a sponge

Trait Implementations§

source§

impl Clone for Steps

source§

fn clone(&self) -> Steps

Returns a copy 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 ColumnIndexer for Steps

source§

const N_COL: usize = 2_079usize

Total number of columns in this index.
source§

fn to_column(self) -> Column

Flatten the column “alias” into the integer-like column.
source§

impl Debug for Steps

source§

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

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

impl EnumCount for Steps

source§

const COUNT: usize = 2usize

source§

impl From<Steps> for usize

source§

fn from(step: Steps) -> usize

Returns the index of the column corresponding to the given selector. They are located at the end of the witness columns.

source§

impl Hash for Steps

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 Index<Steps> for KeccakFoldingWitness

source§

fn index(&self, index: Steps) -> &Self::Output

Map a selector column to the corresponding witness column.

§

type Output = Evaluations<Fp<MontBackend<FrConfig, 4>, 4>, Radix2EvaluationDomain<Fp<MontBackend<FrConfig, 4>, 4>>>

The returned type after indexing.
source§

impl<T: Clone> Index<Steps> for KeccakWitness<T>

source§

fn index(&self, index: Steps) -> &Self::Output

Map the column alias to the actual column index. Note that the column index depends on the step kind (Sponge or Round). For instance, the column 800 represents PadLength in the Sponge step, while it is used by intermediary values when executing the Round step. The selector columns are located at the end of the witness relation columns.

§

type Output = T

The returned type after indexing.
source§

impl<T: Clone> IndexMut<Steps> for KeccakWitness<T>

source§

fn index_mut(&mut self, index: Steps) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl IntoEnumIterator for Steps

source§

impl IntoIterator for Steps

source§

fn into_iter(self) -> Self::IntoIter

Iterate over the instruction variants

§

type Item = Steps

The type of the elements being iterated over.
§

type IntoIter = IntoIter<<Steps as IntoIterator>::Item, Global>

Which kind of iterator are we turning this into?
source§

impl Ord for Steps

source§

fn cmp(&self, other: &Steps) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Selfwhere Self: Sized + PartialOrd<Self>,

Restrict a value to a certain interval. Read more
source§

impl PartialEq<Steps> for Steps

source§

fn eq(&self, other: &Steps) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd<Steps> for Steps

source§

fn partial_cmp(&self, other: &Steps) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

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

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

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

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

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

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl Copy for Steps

source§

impl Eq for Steps

source§

impl StructuralEq for Steps

source§

impl StructuralPartialEq for Steps

Auto Trait Implementations§

§

impl RefUnwindSafe for Steps

§

impl Send for Steps

§

impl Sync for Steps

§

impl Unpin for Steps

§

impl UnwindSafe for Steps

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere 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.

§

impl<I> Iterable for Iwhere I: IntoIterator + Copy + Send + Sync, <I as IntoIterator>::IntoIter: ExactSizeIterator,

§

type Item = <I as IntoIterator>::Item

The type of the element being streamed.
§

type Iter = <I as IntoIterator>::IntoIter

The type of the iterator being generated.
§

fn iter(&self) -> <I as Iterable>::Iter

Return the iterator associated to the current instance. Read more
§

fn len(&self) -> usize

Return a hint on the length of the stream. Read more
§

fn is_empty(&self) -> bool

Return true if the stream is empty, else false.
§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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

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

§

fn vzip(self) -> V