pub trait CanObserve<T> {
    // Required method
    fn observe(&mut self, value: T);

    // Provided method
    fn observe_slice(&mut self, values: &[T])
       where T: Clone { ... }
}

Required Methods§

fn observe(&mut self, value: T)

Provided Methods§

fn observe_slice(&mut self, values: &[T])
where T: Clone,

Implementations on Foreign Types§

§

impl<'a, C, T> CanObserve<T> for &'a mut C
where C: CanObserve<T>,

§

fn observe(&mut self, value: T)

§

fn observe_slice(&mut self, values: &[T])
where T: Clone,

Implementors§

source§

impl<F1, Challenger, F2, PF2> CanObserve<PF2> for IsomorphicChallenger<F1, Challenger, F2>
where F1: BinaryField + From<F2> + Into<F2>, F2: BinaryField, PF2: PackedExtension<F2>, PF2::Scalar: ExtensionField<F2>, Challenger: CanObserve<F1>,

source§

impl<F, H, PE> CanObserve<MerkleCap<PE>> for FieldChallenger<F, H>
where F: Field, H: FieldChallengerHelper<F>, PE: PackedExtension<F, PackedSubfield: PackedFieldIndexable>, PE::Scalar: ExtensionField<F>,

§

impl<F, Inner> CanObserve<F> for SerializingChallenger32<F, Inner>
where F: PrimeField32, Inner: CanObserve<u8>,

§

impl<F, Inner> CanObserve<F> for SerializingChallenger64<F, Inner>
where F: PrimeField64, Inner: CanObserve<u8>,

§

impl<F, P, const N: usize, const WIDTH: usize, const RATE: usize> CanObserve<[F; N]> for DuplexChallenger<F, P, WIDTH, RATE>
where F: Copy, P: CryptographicPermutation<[F; WIDTH]>,

§

impl<F, P, const N: usize, const WIDTH: usize, const RATE: usize> CanObserve<Hash<F, F, N>> for DuplexChallenger<F, P, WIDTH, RATE>
where F: Copy, P: CryptographicPermutation<[F; WIDTH]>,

§

impl<F, P, const WIDTH: usize, const RATE: usize> CanObserve<Vec<Vec<F>>> for DuplexChallenger<F, P, WIDTH, RATE>
where F: Copy, P: CryptographicPermutation<[F; WIDTH]>,

§

impl<F, P, const WIDTH: usize, const RATE: usize> CanObserve<F> for DuplexChallenger<F, P, WIDTH, RATE>
where F: Copy, P: CryptographicPermutation<[F; WIDTH]>,

source§

impl<F, PE, Impl> CanObserve<PE> for FieldChallenger<F, Impl>
where F: Field, PE: PackedExtension<F, PackedSubfield: PackedFieldIndexable>, PE::Scalar: ExtensionField<F>, Impl: FieldChallengerHelper<F>,

§

impl<F, PF, P, const WIDTH: usize> CanObserve<Vec<Vec<F>>> for MultiField32Challenger<F, PF, P, WIDTH>
where F: PrimeField32, PF: PrimeField, P: CryptographicPermutation<[PF; WIDTH]>,

§

impl<F, PF, P, const WIDTH: usize> CanObserve<F> for MultiField32Challenger<F, PF, P, WIDTH>
where F: PrimeField32, PF: PrimeField, P: CryptographicPermutation<[PF; WIDTH]>,

§

impl<F, PF, const N: usize, P, const WIDTH: usize> CanObserve<[F; N]> for MultiField32Challenger<F, PF, P, WIDTH>
where F: PrimeField32, PF: PrimeField, P: CryptographicPermutation<[PF; WIDTH]>,

§

impl<F, PF, const N: usize, P, const WIDTH: usize> CanObserve<Hash<F, PF, N>> for MultiField32Challenger<F, PF, P, WIDTH>
where F: PrimeField32, PF: PrimeField, P: CryptographicPermutation<[PF; WIDTH]>,

§

impl<F, const N: usize, Inner> CanObserve<Hash<F, u8, N>> for SerializingChallenger32<F, Inner>
where F: PrimeField32, Inner: CanObserve<u8>,

§

impl<F, const N: usize, Inner> CanObserve<Hash<F, u8, N>> for SerializingChallenger64<F, Inner>
where F: PrimeField64, Inner: CanObserve<u8>,

§

impl<T, H, const N: usize, const OUT_LEN: usize> CanObserve<[T; N]> for HashChallenger<T, H, OUT_LEN>
where T: Clone, H: CryptographicHasher<T, [T; OUT_LEN]>,

§

impl<T, H, const OUT_LEN: usize> CanObserve<T> for HashChallenger<T, H, OUT_LEN>
where T: Clone, H: CryptographicHasher<T, [T; OUT_LEN]>,