pub struct IsomorphicChallenger<F1, Challenger, F2> { /* private fields */ }
Expand description
A wrapper over a challenger that isomorphically converts field elements sampled and observed.
This implements CanSample
and CanObserve
over the Field
F2
where the internal
challenger needs to sample and observe over the BinaryField F1
which must be isomorphic to
F2
.
Implementations§
Trait Implementations§
source§impl<F1, Challenger, F2, PF2> CanObserve<PF2> for IsomorphicChallenger<F1, Challenger, F2>where
F1: Field + From<F2> + Into<F2>,
F2: Field,
PF2: PackedField<Scalar: ExtensionField<F2>>,
Challenger: CanObserve<F1>,
impl<F1, Challenger, F2, PF2> CanObserve<PF2> for IsomorphicChallenger<F1, Challenger, F2>where
F1: Field + From<F2> + Into<F2>,
F2: Field,
PF2: PackedField<Scalar: ExtensionField<F2>>,
Challenger: CanObserve<F1>,
source§impl<F1, Challenger, F2, F2E> CanSample<F2E> for IsomorphicChallenger<F1, Challenger, F2>
impl<F1, Challenger, F2, F2E> CanSample<F2E> for IsomorphicChallenger<F1, Challenger, F2>
source§impl<F1, Challenger, F2> CanSampleBits<usize> for IsomorphicChallenger<F1, Challenger, F2>
impl<F1, Challenger, F2> CanSampleBits<usize> for IsomorphicChallenger<F1, Challenger, F2>
fn sample_bits(&mut self, bits: usize) -> usize
source§impl<F1, Challenger, F2> Clone for IsomorphicChallenger<F1, Challenger, F2>
impl<F1, Challenger, F2> Clone for IsomorphicChallenger<F1, Challenger, F2>
Auto Trait Implementations§
impl<F1, Challenger, F2> Freeze for IsomorphicChallenger<F1, Challenger, F2>where
Challenger: Freeze,
impl<F1, Challenger, F2> RefUnwindSafe for IsomorphicChallenger<F1, Challenger, F2>
impl<F1, Challenger, F2> Send for IsomorphicChallenger<F1, Challenger, F2>
impl<F1, Challenger, F2> Sync for IsomorphicChallenger<F1, Challenger, F2>
impl<F1, Challenger, F2> Unpin for IsomorphicChallenger<F1, Challenger, F2>
impl<F1, Challenger, F2> UnwindSafe for IsomorphicChallenger<F1, Challenger, F2>
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§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> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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