pub struct SubEnvColumn<'a, F: PrimeField, CIx1: ColumnIndexer<usize>, Env1: ColAccessCap<F, CIx1>, L>(/* private fields */);
Expand description
Sub environment with a lens that is mapping columns.
Implementations§
Source§impl<'a, F: PrimeField, CIx1: ColumnIndexer<usize>, Env1: ColAccessCap<F, CIx1>, L> SubEnvColumn<'a, F, CIx1, Env1, L>
impl<'a, F: PrimeField, CIx1: ColumnIndexer<usize>, Env1: ColAccessCap<F, CIx1>, L> SubEnvColumn<'a, F, CIx1, Env1, L>
pub fn new(env: &'a mut Env1, lens: L) -> Self
Trait Implementations§
Source§impl<'a, F: PrimeField, CIx1: ColumnIndexer<usize>, CIx2: ColumnIndexer<usize>, Env1: ColAccessCap<F, CIx1>, L: MPrism<Source = CIx1, Target = CIx2>> ColAccessCap<F, CIx2> for SubEnvColumn<'a, F, CIx1, Env1, L>
impl<'a, F: PrimeField, CIx1: ColumnIndexer<usize>, CIx2: ColumnIndexer<usize>, Env1: ColAccessCap<F, CIx1>, L: MPrism<Source = CIx1, Target = CIx2>> ColAccessCap<F, CIx2> for SubEnvColumn<'a, F, CIx1, Env1, L>
type Variable = <Env1 as ColAccessCap<F, CIx1>>::Variable
Source§fn assert_zero(&mut self, cst: Self::Variable)
fn assert_zero(&mut self, cst: Self::Variable)
Asserts that the value is zero.
Source§fn set_assert_mapper(
&mut self,
mapper: Box<dyn Fn(Self::Variable) -> Self::Variable>,
)
fn set_assert_mapper( &mut self, mapper: Box<dyn Fn(Self::Variable) -> Self::Variable>, )
Sets an assert predicate
f(X)
such that when assert_zero is
called on x, it will actually perform assert_zero(f(x))
.Source§fn read_column(&self, ix: CIx2) -> Self::Variable
fn read_column(&self, ix: CIx2) -> Self::Variable
Reads value from a column position.
Source§impl<'a, F: PrimeField, CIx1: ColumnIndexer<usize>, CIx2: ColumnIndexer<usize>, Env1: ColWriteCap<F, CIx1>, L: MPrism<Source = CIx1, Target = CIx2>> ColWriteCap<F, CIx2> for SubEnvColumn<'a, F, CIx1, Env1, L>
impl<'a, F: PrimeField, CIx1: ColumnIndexer<usize>, CIx2: ColumnIndexer<usize>, Env1: ColWriteCap<F, CIx1>, L: MPrism<Source = CIx1, Target = CIx2>> ColWriteCap<F, CIx2> for SubEnvColumn<'a, F, CIx1, Env1, L>
fn write_column(&mut self, ix: CIx2, value: &Self::Variable)
Source§impl<'a, F: PrimeField, CIx1: ColumnIndexer<usize>, CIx2: ColumnIndexer<usize>, Env1: HybridCopyCap<F, CIx1>, L: MPrism<Source = CIx1, Target = CIx2>> HybridCopyCap<F, CIx2> for SubEnvColumn<'a, F, CIx1, Env1, L>
impl<'a, F: PrimeField, CIx1: ColumnIndexer<usize>, CIx2: ColumnIndexer<usize>, Env1: HybridCopyCap<F, CIx1>, L: MPrism<Source = CIx1, Target = CIx2>> HybridCopyCap<F, CIx2> for SubEnvColumn<'a, F, CIx1, Env1, L>
Source§impl<'a, F: PrimeField, CIx1: ColumnIndexer<usize>, CIx2: ColumnIndexer<usize>, LT: LookupTableID, Env1: LookupCap<F, CIx1, LT>, L: MPrism<Source = CIx1, Target = CIx2>> LookupCap<F, CIx2, LT> for SubEnvColumn<'a, F, CIx1, Env1, L>
impl<'a, F: PrimeField, CIx1: ColumnIndexer<usize>, CIx2: ColumnIndexer<usize>, LT: LookupTableID, Env1: LookupCap<F, CIx1, LT>, L: MPrism<Source = CIx1, Target = CIx2>> LookupCap<F, CIx2, LT> for SubEnvColumn<'a, F, CIx1, Env1, L>
Auto Trait Implementations§
impl<'a, F, CIx1, Env1, L> Freeze for SubEnvColumn<'a, F, CIx1, Env1, L>where
L: Freeze,
impl<'a, F, CIx1, Env1, L> RefUnwindSafe for SubEnvColumn<'a, F, CIx1, Env1, L>
impl<'a, F, CIx1, Env1, L> Send for SubEnvColumn<'a, F, CIx1, Env1, L>
impl<'a, F, CIx1, Env1, L> Sync for SubEnvColumn<'a, F, CIx1, Env1, L>
impl<'a, F, CIx1, Env1, L> Unpin for SubEnvColumn<'a, F, CIx1, Env1, L>
impl<'a, F, CIx1, Env1, L> !UnwindSafe for SubEnvColumn<'a, F, CIx1, Env1, L>
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