Struct zkevm_circuits::root_circuit::NativeLoader
pub struct NativeLoader;
Expand description
Loader
implementation in native rust.
Trait Implementations§
§impl<M, MOS> AccumulationDecider<<M as Engine>::G1Affine, NativeLoader> for KzgAs<M, MOS>
impl<M, MOS> AccumulationDecider<<M as Engine>::G1Affine, NativeLoader> for KzgAs<M, MOS>
§type DecidingKey = KzgDecidingKey<M>
type DecidingKey = KzgDecidingKey<M>
Deciding key. The key for decider for perform the final accumulator
check.
§fn decide(
dk: &<KzgAs<M, MOS> as AccumulationDecider<<M as Engine>::G1Affine, NativeLoader>>::DecidingKey,
_: KzgAccumulator<<M as Engine>::G1Affine, NativeLoader>
) -> Result<(), Error>
fn decide( dk: &<KzgAs<M, MOS> as AccumulationDecider<<M as Engine>::G1Affine, NativeLoader>>::DecidingKey, _: KzgAccumulator<<M as Engine>::G1Affine, NativeLoader> ) -> Result<(), Error>
Decide if a [
AccumulationScheme::Accumulator
] is valid.§fn decide_all(
dk: &<KzgAs<M, MOS> as AccumulationDecider<<M as Engine>::G1Affine, NativeLoader>>::DecidingKey,
accumulators: Vec<KzgAccumulator<<M as Engine>::G1Affine, NativeLoader>>
) -> Result<(), Error>
fn decide_all( dk: &<KzgAs<M, MOS> as AccumulationDecider<<M as Engine>::G1Affine, NativeLoader>>::DecidingKey, accumulators: Vec<KzgAccumulator<<M as Engine>::G1Affine, NativeLoader>> ) -> Result<(), Error>
Decide if all [
AccumulationScheme::Accumulator
]s are valid.§impl Clone for NativeLoader
impl Clone for NativeLoader
§fn clone(&self) -> NativeLoader
fn clone(&self) -> NativeLoader
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read more§impl Debug for NativeLoader
impl Debug for NativeLoader
§impl<C> EcPointLoader<C> for NativeLoaderwhere
C: CurveAffine,
impl<C> EcPointLoader<C> for NativeLoaderwhere
C: CurveAffine,
§type LoadedEcPoint = C
type LoadedEcPoint = C
[
LoadedEcPoint
].§fn ec_point_load_const(
&self,
value: &C
) -> <NativeLoader as EcPointLoader<C>>::LoadedEcPoint
fn ec_point_load_const( &self, value: &C ) -> <NativeLoader as EcPointLoader<C>>::LoadedEcPoint
Load a constant elliptic curve point.
§fn ec_point_assert_eq(
&self,
annotation: &str,
lhs: &<NativeLoader as EcPointLoader<C>>::LoadedEcPoint,
rhs: &<NativeLoader as EcPointLoader<C>>::LoadedEcPoint
) -> Result<(), Error>
fn ec_point_assert_eq( &self, annotation: &str, lhs: &<NativeLoader as EcPointLoader<C>>::LoadedEcPoint, rhs: &<NativeLoader as EcPointLoader<C>>::LoadedEcPoint ) -> Result<(), Error>
Assert lhs and rhs elliptic curve points are equal.
§fn multi_scalar_multiplication(
pairs: &[(&<NativeLoader as ScalarLoader<<C as PrimeCurveAffine>::Scalar>>::LoadedScalar, &C)]
) -> C
fn multi_scalar_multiplication( pairs: &[(&<NativeLoader as ScalarLoader<<C as PrimeCurveAffine>::Scalar>>::LoadedScalar, &C)] ) -> C
Perform multi-scalar multiplication.
§fn ec_point_load_zero(&self) -> Self::LoadedEcPoint
fn ec_point_load_zero(&self) -> Self::LoadedEcPoint
Load
identity
as constant.§fn ec_point_load_one(&self) -> Self::LoadedEcPoint
fn ec_point_load_one(&self) -> Self::LoadedEcPoint
Load
generator
as constant.§impl<C> Loader<C> for NativeLoaderwhere
C: CurveAffine,
impl<C> Loader<C> for NativeLoaderwhere
C: CurveAffine,
§fn start_cost_metering(&self, _identifier: &str)
fn start_cost_metering(&self, _identifier: &str)
Start cost metering with an
identifier
.§fn end_cost_metering(&self)
fn end_cost_metering(&self)
End latest started cost metering.
§impl<F> ScalarLoader<F> for NativeLoaderwhere
F: PrimeField,
impl<F> ScalarLoader<F> for NativeLoaderwhere
F: PrimeField,
§type LoadedScalar = F
type LoadedScalar = F
[
LoadedScalar
].§fn load_const(
&self,
value: &F
) -> <NativeLoader as ScalarLoader<F>>::LoadedScalar
fn load_const( &self, value: &F ) -> <NativeLoader as ScalarLoader<F>>::LoadedScalar
Load a constant field element.
§fn assert_eq(
&self,
annotation: &str,
lhs: &<NativeLoader as ScalarLoader<F>>::LoadedScalar,
rhs: &<NativeLoader as ScalarLoader<F>>::LoadedScalar
) -> Result<(), Error>
fn assert_eq( &self, annotation: &str, lhs: &<NativeLoader as ScalarLoader<F>>::LoadedScalar, rhs: &<NativeLoader as ScalarLoader<F>>::LoadedScalar ) -> Result<(), Error>
Assert lhs and rhs field elements are equal.
§fn sum_with_coeff_and_const(
&self,
values: &[(F, &Self::LoadedScalar)],
constant: F
) -> Self::LoadedScalar
fn sum_with_coeff_and_const( &self, values: &[(F, &Self::LoadedScalar)], constant: F ) -> Self::LoadedScalar
Sum field elements with coefficients and constant.
§fn sum_products_with_coeff_and_const(
&self,
values: &[(F, &Self::LoadedScalar, &Self::LoadedScalar)],
constant: F
) -> Self::LoadedScalar
fn sum_products_with_coeff_and_const( &self, values: &[(F, &Self::LoadedScalar, &Self::LoadedScalar)], constant: F ) -> Self::LoadedScalar
Sum product of field elements with coefficients and constant.
§fn sum_with_coeff(
&self,
values: &[(F, &Self::LoadedScalar)]
) -> Self::LoadedScalar
fn sum_with_coeff( &self, values: &[(F, &Self::LoadedScalar)] ) -> Self::LoadedScalar
Sum field elements with coefficients.
§fn sum_with_const(
&self,
values: &[&Self::LoadedScalar],
constant: F
) -> Self::LoadedScalar
fn sum_with_const( &self, values: &[&Self::LoadedScalar], constant: F ) -> Self::LoadedScalar
Sum field elements and constant.
§fn sum_products_with_coeff(
&self,
values: &[(F, &Self::LoadedScalar, &Self::LoadedScalar)]
) -> Self::LoadedScalar
fn sum_products_with_coeff( &self, values: &[(F, &Self::LoadedScalar, &Self::LoadedScalar)] ) -> Self::LoadedScalar
Sum product of field elements with coefficients.
§fn sum_products_with_const(
&self,
values: &[(&Self::LoadedScalar, &Self::LoadedScalar)],
constant: F
) -> Self::LoadedScalar
fn sum_products_with_const( &self, values: &[(&Self::LoadedScalar, &Self::LoadedScalar)], constant: F ) -> Self::LoadedScalar
Sum product of field elements and constant.
§fn sum_products(
&self,
values: &[(&Self::LoadedScalar, &Self::LoadedScalar)]
) -> Self::LoadedScalar
fn sum_products( &self, values: &[(&Self::LoadedScalar, &Self::LoadedScalar)] ) -> Self::LoadedScalar
Sum product of field elements.
§fn batch_invert<'a>(
values: impl IntoIterator<Item = &'a mut Self::LoadedScalar>
)where
Self::LoadedScalar: 'a,
fn batch_invert<'a>(
values: impl IntoIterator<Item = &'a mut Self::LoadedScalar>
)where
Self::LoadedScalar: 'a,
Batch invert field elements.
§impl<C, S> Transcript<C, NativeLoader> for EvmTranscript<C, NativeLoader, S, Vec<u8>>
impl<C, S> Transcript<C, NativeLoader> for EvmTranscript<C, NativeLoader, S, Vec<u8>>
§fn loader(&self) -> &NativeLoader
fn loader(&self) -> &NativeLoader
Returns [
Loader
].§fn squeeze_challenge(&mut self) -> <C as PrimeCurveAffine>::Scalar
fn squeeze_challenge(&mut self) -> <C as PrimeCurveAffine>::Scalar
Squeeze a challenge.
§fn common_ec_point(&mut self, ec_point: &C) -> Result<(), Error>
fn common_ec_point(&mut self, ec_point: &C) -> Result<(), Error>
Update with an elliptic curve point.
§fn common_scalar(
&mut self,
scalar: &<C as PrimeCurveAffine>::Scalar
) -> Result<(), Error>
fn common_scalar( &mut self, scalar: &<C as PrimeCurveAffine>::Scalar ) -> Result<(), Error>
Update with a scalar.
§fn squeeze_n_challenges(
&mut self,
n: usize
) -> Vec<<L as ScalarLoader<<C as CurveAffine>::ScalarExt>>::LoadedScalar>
fn squeeze_n_challenges( &mut self, n: usize ) -> Vec<<L as ScalarLoader<<C as CurveAffine>::ScalarExt>>::LoadedScalar>
Squeeze
n
challenges.§impl<C, S, const T: usize, const RATE: usize, const R_F: usize, const R_P: usize> Transcript<C, NativeLoader> for PoseidonTranscript<C, NativeLoader, S, T, RATE, R_F, R_P>where
C: CurveAffine,
<C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,
impl<C, S, const T: usize, const RATE: usize, const R_F: usize, const R_P: usize> Transcript<C, NativeLoader> for PoseidonTranscript<C, NativeLoader, S, T, RATE, R_F, R_P>where
C: CurveAffine,
<C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,
§fn loader(&self) -> &NativeLoader
fn loader(&self) -> &NativeLoader
Returns [
Loader
].§fn squeeze_challenge(&mut self) -> <C as PrimeCurveAffine>::Scalar
fn squeeze_challenge(&mut self) -> <C as PrimeCurveAffine>::Scalar
Squeeze a challenge.
§fn common_scalar(
&mut self,
scalar: &<C as PrimeCurveAffine>::Scalar
) -> Result<(), Error>
fn common_scalar( &mut self, scalar: &<C as PrimeCurveAffine>::Scalar ) -> Result<(), Error>
Update with a scalar.
§fn common_ec_point(&mut self, ec_point: &C) -> Result<(), Error>
fn common_ec_point(&mut self, ec_point: &C) -> Result<(), Error>
Update with an elliptic curve point.
§fn squeeze_n_challenges(
&mut self,
n: usize
) -> Vec<<L as ScalarLoader<<C as CurveAffine>::ScalarExt>>::LoadedScalar>
fn squeeze_n_challenges( &mut self, n: usize ) -> Vec<<L as ScalarLoader<<C as CurveAffine>::ScalarExt>>::LoadedScalar>
Squeeze
n
challenges.§impl<C, S> TranscriptRead<C, NativeLoader> for EvmTranscript<C, NativeLoader, S, Vec<u8>>
impl<C, S> TranscriptRead<C, NativeLoader> for EvmTranscript<C, NativeLoader, S, Vec<u8>>
§fn read_scalar(&mut self) -> Result<<C as PrimeCurveAffine>::Scalar, Error>
fn read_scalar(&mut self) -> Result<<C as PrimeCurveAffine>::Scalar, Error>
Read a scalar.
§fn read_ec_point(&mut self) -> Result<C, Error>
fn read_ec_point(&mut self) -> Result<C, Error>
Read a elliptic curve point.
§fn read_n_scalars(
&mut self,
n: usize
) -> Result<Vec<<L as ScalarLoader<<C as CurveAffine>::ScalarExt>>::LoadedScalar>, Error>
fn read_n_scalars( &mut self, n: usize ) -> Result<Vec<<L as ScalarLoader<<C as CurveAffine>::ScalarExt>>::LoadedScalar>, Error>
Read
n
scalar.§fn read_n_ec_points(
&mut self,
n: usize
) -> Result<Vec<<L as EcPointLoader<C>>::LoadedEcPoint>, Error>
fn read_n_ec_points( &mut self, n: usize ) -> Result<Vec<<L as EcPointLoader<C>>::LoadedEcPoint>, Error>
Read
n
elliptic curve point.§impl<C, R, const T: usize, const RATE: usize, const R_F: usize, const R_P: usize> TranscriptRead<C, NativeLoader> for PoseidonTranscript<C, NativeLoader, R, T, RATE, R_F, R_P>where
C: CurveAffine,
<C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,
R: Read,
impl<C, R, const T: usize, const RATE: usize, const R_F: usize, const R_P: usize> TranscriptRead<C, NativeLoader> for PoseidonTranscript<C, NativeLoader, R, T, RATE, R_F, R_P>where
C: CurveAffine,
<C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,
R: Read,
§fn read_scalar(&mut self) -> Result<<C as PrimeCurveAffine>::Scalar, Error>
fn read_scalar(&mut self) -> Result<<C as PrimeCurveAffine>::Scalar, Error>
Read a scalar.
§fn read_ec_point(&mut self) -> Result<C, Error>
fn read_ec_point(&mut self) -> Result<C, Error>
Read a elliptic curve point.
§fn read_n_scalars(
&mut self,
n: usize
) -> Result<Vec<<L as ScalarLoader<<C as CurveAffine>::ScalarExt>>::LoadedScalar>, Error>
fn read_n_scalars( &mut self, n: usize ) -> Result<Vec<<L as ScalarLoader<<C as CurveAffine>::ScalarExt>>::LoadedScalar>, Error>
Read
n
scalar.§fn read_n_ec_points(
&mut self,
n: usize
) -> Result<Vec<<L as EcPointLoader<C>>::LoadedEcPoint>, Error>
fn read_n_ec_points( &mut self, n: usize ) -> Result<Vec<<L as EcPointLoader<C>>::LoadedEcPoint>, Error>
Read
n
elliptic curve point.Auto Trait Implementations§
impl RefUnwindSafe for NativeLoader
impl Send for NativeLoader
impl Sync for NativeLoader
impl Unpin for NativeLoader
impl UnwindSafe for NativeLoader
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
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref()
only in debug builds, and is erased in release
builds.