Struct ValueVec

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

The vector of values used in constraint evaluation and proof generation.

ValueVec is the concrete instantiation of values that satisfy (or should satisfy) a ConstraintSystem. It follows the layout defined by ValueVecLayout and serves as the primary data structure for both constraint evaluation and polynomial commitment.

Between these sections, there may be padding regions to satisfy alignment requirements. The total size is always a power of two as required for technical reasons.

Implementations§

Source§

impl ValueVec

Source

pub fn new(layout: ValueVecLayout) -> ValueVec

Creates a new value vector with the given layout.

The values are filled with zeros.

Source

pub fn new_from_data( layout: ValueVecLayout, public: Vec<Word>, private: Vec<Word>, ) -> Result<ValueVec, ConstraintSystemError>

Creates a new value vector with the given layout and data.

The data is checked to have the correct length.

Source

pub fn size(&self) -> usize

The total size of the committed portion of the vector (excluding scratch).

Source

pub fn get(&self, index: usize) -> Word

Returns the value stored at the given index.

Panics if the index is out of bounds. Will happily return a value from the padding section.

Source

pub fn set(&mut self, index: usize, value: Word)

Sets the value at the given index.

Panics if the index is out of bounds. Will gladly assign a value to the padding section.

Source

pub fn public(&self) -> &[Word]

Returns the public portion of the values vector.

Source

pub fn non_public(&self) -> &[Word]

Return all non-public values (witness + internal).

Source

pub fn witness(&self) -> &[Word]

Returns the witness portion of the values vector.

Source

pub fn combined_witness(&self) -> &[Word]

Returns the combined values vector.

Trait Implementations§

Source§

impl Clone for ValueVec

Source§

fn clone(&self) -> ValueVec

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 Debug for ValueVec

Source§

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

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

impl Index<ValueIndex> for ValueVec

Source§

type Output = Word

The returned type after indexing.
Source§

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

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

impl IndexMut<ValueIndex> for ValueVec

Source§

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

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

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

impl<T> Pointable for T

§

const ALIGN: usize

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