Struct halo2_proofs::transcript::Challenge255  
source · [−]pub struct Challenge255<C: CurveAffine>(_, _);Expand description
A 255-bit challenge.
Methods from Deref<Target = [u8; 32]>
1.57.0 · sourcepub fn as_slice(&self) -> &[T]ⓘNotable traits for &mut [u8]impl Write for &mut [u8]impl Read for &[u8]
 
pub fn as_slice(&self) -> &[T]ⓘNotable traits for &mut [u8]impl Write for &mut [u8]impl Read for &[u8]
Returns a slice containing the entire array. Equivalent to &s[..].
sourcepub fn each_ref(&self) -> [&T; N]
 🔬This is a nightly-only experimental API. (array_methods)
pub fn each_ref(&self) -> [&T; N]
array_methods)Borrows each element and returns an array of references with the same
size as self.
Example
#![feature(array_methods)]
let floats = [3.1, 2.7, -1.0];
let float_refs: [&f64; 3] = floats.each_ref();
assert_eq!(float_refs, [&3.1, &2.7, &-1.0]);This method is particularly useful if combined with other methods, like
map. This way, you can avoid moving the original
array if its elements are not Copy.
#![feature(array_methods)]
let strings = ["Ferris".to_string(), "♥".to_string(), "Rust".to_string()];
let is_ascii = strings.each_ref().map(|s| s.is_ascii());
assert_eq!(is_ascii, [true, false, true]);
// We can still access the original array: it has not been moved.
assert_eq!(strings.len(), 3);sourcepub fn split_array_ref<const M: usize>(&self) -> (&[T; M], &[T])
 🔬This is a nightly-only experimental API. (split_array)
pub fn split_array_ref<const M: usize>(&self) -> (&[T; M], &[T])
split_array)Divides one array reference into two at an index.
The first will contain all indices from [0, M) (excluding
the index M itself) and the second will contain all
indices from [M, N) (excluding the index N itself).
Panics
Panics if M > N.
Examples
#![feature(split_array)]
let v = [1, 2, 3, 4, 5, 6];
{
   let (left, right) = v.split_array_ref::<0>();
   assert_eq!(left, &[]);
   assert_eq!(right, &[1, 2, 3, 4, 5, 6]);
}
{
    let (left, right) = v.split_array_ref::<2>();
    assert_eq!(left, &[1, 2]);
    assert_eq!(right, &[3, 4, 5, 6]);
}
{
    let (left, right) = v.split_array_ref::<6>();
    assert_eq!(left, &[1, 2, 3, 4, 5, 6]);
    assert_eq!(right, &[]);
}sourcepub fn rsplit_array_ref<const M: usize>(&self) -> (&[T], &[T; M])
 🔬This is a nightly-only experimental API. (split_array)
pub fn rsplit_array_ref<const M: usize>(&self) -> (&[T], &[T; M])
split_array)Divides one array reference into two at an index from the end.
The first will contain all indices from [0, N - M) (excluding
the index N - M itself) and the second will contain all
indices from [N - M, N) (excluding the index N itself).
Panics
Panics if M > N.
Examples
#![feature(split_array)]
let v = [1, 2, 3, 4, 5, 6];
{
   let (left, right) = v.rsplit_array_ref::<0>();
   assert_eq!(left, &[1, 2, 3, 4, 5, 6]);
   assert_eq!(right, &[]);
}
{
    let (left, right) = v.rsplit_array_ref::<2>();
    assert_eq!(left, &[1, 2, 3, 4]);
    assert_eq!(right, &[5, 6]);
}
{
    let (left, right) = v.rsplit_array_ref::<6>();
    assert_eq!(left, &[]);
    assert_eq!(right, &[1, 2, 3, 4, 5, 6]);
}Trait Implementations
sourceimpl<C: Clone + CurveAffine> Clone for Challenge255<C>
 
impl<C: Clone + CurveAffine> Clone for Challenge255<C>
sourcefn clone(&self) -> Challenge255<C>
 
fn clone(&self) -> Challenge255<C>
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
source. Read moresourceimpl<C: Debug + CurveAffine> Debug for Challenge255<C>
 
impl<C: Debug + CurveAffine> Debug for Challenge255<C>
sourceimpl<C: CurveAffine> Deref for Challenge255<C>
 
impl<C: CurveAffine> Deref for Challenge255<C>
sourceimpl<C: CurveAffine> EncodedChallenge<C> for Challenge255<C>
 
impl<C: CurveAffine> EncodedChallenge<C> for Challenge255<C>
type Input = [u8; 64]
type Input = [u8; 64]
sourcefn new(challenge_input: &[u8; 64]) -> Self
 
fn new(challenge_input: &[u8; 64]) -> Self
sourcefn get_scalar(&self) -> C::Scalar
 
fn get_scalar(&self) -> C::Scalar
sourcefn as_challenge_scalar<T>(&self) -> ChallengeScalar<C, T>
 
fn as_challenge_scalar<T>(&self) -> ChallengeScalar<C, T>
ChallengeScalar.sourceimpl<R: Read, C: CurveAffine> Transcript<C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>
 
impl<R: Read, C: CurveAffine> Transcript<C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>
sourcefn squeeze_challenge(&mut self) -> Challenge255<C>
 
fn squeeze_challenge(&mut self) -> Challenge255<C>
sourcefn common_point(&mut self, point: C) -> Result<()>
 
fn common_point(&mut self, point: C) -> Result<()>
sourcefn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>
 
fn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>
sourcefn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>
 
fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>
sourceimpl<W: Write, C: CurveAffine> Transcript<C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>
 
impl<W: Write, C: CurveAffine> Transcript<C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>
sourcefn squeeze_challenge(&mut self) -> Challenge255<C>
 
fn squeeze_challenge(&mut self) -> Challenge255<C>
sourcefn common_point(&mut self, point: C) -> Result<()>
 
fn common_point(&mut self, point: C) -> Result<()>
sourcefn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>
 
fn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>
sourcefn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>
 
fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>
sourceimpl<R: Read, C: CurveAffine> TranscriptRead<C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>
 
impl<R: Read, C: CurveAffine> TranscriptRead<C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>
sourcefn read_point(&mut self) -> Result<C>
 
fn read_point(&mut self) -> Result<C>
sourcefn read_scalar(&mut self) -> Result<C::Scalar>
 
fn read_scalar(&mut self) -> Result<C::Scalar>
sourceimpl<R: Read, C: CurveAffine> TranscriptReadBuffer<R, C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>
 
impl<R: Read, C: CurveAffine> TranscriptReadBuffer<R, C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>
sourceimpl<W: Write, C: CurveAffine> TranscriptWrite<C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>
 
impl<W: Write, C: CurveAffine> TranscriptWrite<C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>
sourcefn write_point(&mut self, point: C) -> Result<()>
 
fn write_point(&mut self, point: C) -> Result<()>
sourcefn write_scalar(&mut self, scalar: C::Scalar) -> Result<()>
 
fn write_scalar(&mut self, scalar: C::Scalar) -> Result<()>
sourceimpl<W: Write, C: CurveAffine> TranscriptWriterBuffer<W, C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>
 
impl<W: Write, C: CurveAffine> TranscriptWriterBuffer<W, C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>
impl<C: Copy + CurveAffine> Copy for Challenge255<C>
Auto Trait Implementations
impl<C> RefUnwindSafe for Challenge255<C>where
    C: RefUnwindSafe,
impl<C> Send for Challenge255<C>
impl<C> Sync for Challenge255<C>
impl<C> Unpin for Challenge255<C>where
    C: Unpin,
impl<C> UnwindSafe for Challenge255<C>where
    C: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut 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,
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,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
    Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
    Self: LowerExp,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
    Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
    Self: LowerHex,
fn fmt_octal(self) -> FmtOctal<Self>where
    Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
    Self: Octal,
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,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
    Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
    Self: UpperExp,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
    Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
    Self: UpperHex,
fn fmt_list(self) -> FmtList<Self>where
    &'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
    &'a Self: for<'a> IntoIterator,
sourceimpl<T> Instrument for T
 
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn 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,
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,
self and passes that borrow into the pipe function. Read morefn 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,
self and passes that borrow into the pipe function. Read morefn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
    Self: Borrow<B>,
    B: 'a + ?Sized,
    R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
    Self: Borrow<B>,
    B: 'a + ?Sized,
    R: 'a,
fn pipe_borrow_mut<'a, B, R>(
    &'a mut self,
    func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
    Self: BorrowMut<B>,
    B: 'a + ?Sized,
    R: 'a,
fn pipe_borrow_mut<'a, B, R>(
    &'a mut self,
    func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
    Self: BorrowMut<B>,
    B: 'a + ?Sized,
    R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
    Self: AsRef<U>,
    U: 'a + ?Sized,
    R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
    Self: AsRef<U>,
    U: 'a + ?Sized,
    R: 'a,
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) -> Rwhere
    Self: AsMut<U>,
    U: 'a + ?Sized,
    R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
    Self: AsMut<U>,
    U: 'a + ?Sized,
    R: 'a,
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere
    Self: Deref<Target = T>,
    T: 'a + ?Sized,
    R: 'a,
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere
    Self: Deref<Target = T>,
    T: 'a + ?Sized,
    R: 'a,
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)) -> Selfwhere
    Self: Borrow<B>,
    B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
    Self: Borrow<B>,
    B: ?Sized,
Borrow<B> of a value. Read morefn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
    Self: BorrowMut<B>,
    B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
    Self: BorrowMut<B>,
    B: ?Sized,
BorrowMut<B> of a value. Read morefn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
    Self: AsRef<R>,
    R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
    Self: AsRef<R>,
    R: ?Sized,
AsRef<R> view of a value. Read morefn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
    Self: AsMut<R>,
    R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
    Self: AsMut<R>,
    R: ?Sized,
AsMut<R> view of a value. Read morefn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
    Self: Deref<Target = T>,
    T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
    Self: Deref<Target = T>,
    T: ?Sized,
Deref::Target of a value. Read morefn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
    Self: DerefMut<Target = T> + Deref,
    T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
    Self: DerefMut<Target = T> + Deref,
    T: ?Sized,
Deref::Target of a value. Read morefn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.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
.tap_mut() only in debug builds, and is erased in release
builds. Read morefn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
    Self: Borrow<B>,
    B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
    Self: Borrow<B>,
    B: ?Sized,
.tap_borrow() only in debug builds, and is erased in release
builds. Read morefn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
    Self: BorrowMut<B>,
    B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
    Self: BorrowMut<B>,
    B: ?Sized,
.tap_borrow_mut() only in debug builds, and is erased in release
builds. Read morefn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
    Self: AsRef<R>,
    R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
    Self: AsRef<R>,
    R: ?Sized,
.tap_ref() only in debug builds, and is erased in release
builds. Read morefn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
    Self: AsMut<R>,
    R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
    Self: AsMut<R>,
    R: ?Sized,
.tap_ref_mut() only in debug builds, and is erased in release
builds. Read more