diff --git a/halo2_proofs/src/plonk.rs b/halo2_proofs/src/plonk.rs index 64460e37..47e8b0bb 100644 --- a/halo2_proofs/src/plonk.rs +++ b/halo2_proofs/src/plonk.rs @@ -37,7 +37,7 @@ use std::io; /// This is a verifying key which allows for the verification of proofs for a /// particular circuit. -#[derive(Debug)] +#[derive(Clone, Debug)] pub struct VerifyingKey { domain: EvaluationDomain, fixed_commitments: Vec, @@ -95,7 +95,7 @@ pub struct PinnedVerificationKey<'a, C: CurveAffine> { } /// This is a proving key which allows for the creation of proofs for a /// particular circuit. -#[derive(Debug)] +#[derive(Clone, Debug)] pub struct ProvingKey { vk: VerifyingKey, l0: Polynomial, diff --git a/halo2_proofs/src/plonk/permutation.rs b/halo2_proofs/src/plonk/permutation.rs index 2117ebab..58745f56 100644 --- a/halo2_proofs/src/plonk/permutation.rs +++ b/halo2_proofs/src/plonk/permutation.rs @@ -73,13 +73,13 @@ impl Argument { } /// The verifying key for a single permutation argument. -#[derive(Debug)] +#[derive(Clone, Debug)] pub(crate) struct VerifyingKey { commitments: Vec, } /// The proving key for a single permutation argument. -#[derive(Debug)] +#[derive(Clone, Debug)] pub(crate) struct ProvingKey { permutations: Vec>, polys: Vec>, diff --git a/halo2_proofs/src/poly/commitment.rs b/halo2_proofs/src/poly/commitment.rs index f7a3a89e..f14413be 100644 --- a/halo2_proofs/src/poly/commitment.rs +++ b/halo2_proofs/src/poly/commitment.rs @@ -24,7 +24,7 @@ pub use verifier::{verify_proof, Accumulator, Guard}; use std::io; /// These are the public parameters for the polynomial commitment scheme. -#[derive(Debug)] +#[derive(Clone, Debug)] pub struct Params { pub(crate) k: u32, pub(crate) n: u64, diff --git a/halo2_proofs/src/poly/domain.rs b/halo2_proofs/src/poly/domain.rs index 6ede6c85..9a44093a 100644 --- a/halo2_proofs/src/poly/domain.rs +++ b/halo2_proofs/src/poly/domain.rs @@ -15,7 +15,7 @@ use std::marker::PhantomData; /// This structure contains precomputed constants and other details needed for /// performing operations on an evaluation domain of size $2^k$ and an extended /// domain of size $2^{k} * j$ with $j \neq 0$. -#[derive(Debug)] +#[derive(Clone, Debug)] pub struct EvaluationDomain { n: u64, k: u32,