shared_types/transcript/
test_transcript.rs

1//! An implementation of a `TranscriptSponge` that always returns 1.
2//! For testing purposes only!
3
4use std::marker::PhantomData;
5
6use super::TranscriptSponge;
7use crate::Field;
8use itertools::Itertools;
9use std::fmt::Debug;
10
11/// An implementation of a transcript sponge that always returns 1.
12#[derive(Clone, Default, Debug)]
13pub struct TestSponge<F: Field + Debug> {
14    _marker: PhantomData<F>,
15}
16
17impl<F: Field + Debug> TranscriptSponge<F> for TestSponge<F> {
18    fn absorb(&mut self, _elem: F) {}
19
20    fn absorb_elements(&mut self, _elements: &[F]) {}
21
22    fn squeeze(&mut self) -> F {
23        F::ONE
24    }
25
26    fn squeeze_elements(&mut self, num_elements: usize) -> Vec<F> {
27        (0..num_elements).map(|_| self.squeeze()).collect_vec()
28    }
29
30    fn absorb_initialization_label(&mut self, _label: &str) {}
31}