diff --git a/plonky2/src/plonk/circuit_data.rs b/plonky2/src/plonk/circuit_data.rs index edf28ba5..6e4e0638 100644 --- a/plonky2/src/plonk/circuit_data.rs +++ b/plonky2/src/plonk/circuit_data.rs @@ -321,6 +321,29 @@ pub struct ProverOnlyCircuitData< pub lut_to_lookups: Vec, } +impl, C: GenericConfig, const D: usize> + ProverOnlyCircuitData +{ + pub fn to_bytes( + &self, + generator_serializer: &dyn WitnessGeneratorSerializer, + common_data: &CommonCircuitData, + ) -> IoResult> { + let mut buffer = Vec::new(); + buffer.write_prover_only_circuit_data(self, generator_serializer, common_data)?; + Ok(buffer) + } + + pub fn from_bytes( + bytes: &[u8], + generator_serializer: &dyn WitnessGeneratorSerializer, + common_data: &CommonCircuitData, + ) -> IoResult { + let mut buffer = Buffer::new(bytes); + buffer.read_prover_only_circuit_data(generator_serializer, common_data) + } +} + /// Circuit data required by the verifier, but not the prover. #[derive(Debug, Clone, Eq, PartialEq, Serialize)] pub struct VerifierOnlyCircuitData, const D: usize> {