1use ark_ec::{pairing::Pairing, AffineRepr};
8use ark_serialize::{CanonicalDeserialize, CanonicalSerialize};
9use ark_std::vec::Vec;
10use derive_where::derive_where;
11
12#[derive(Clone, Copy, Debug, PartialEq, Eq, CanonicalSerialize, CanonicalDeserialize)]
13#[derive_where(Default, Hash)]
14pub struct Commitment<E: Pairing>(
16 pub E::G1Affine,
18);
19
20impl<T, E> From<T> for Commitment<E>
22where
23 T: AffineRepr,
24 E: Pairing<G1Affine = T>,
25{
26 fn from(value: T) -> Self {
27 Self(value)
28 }
29}
30
31impl<T, E> AsRef<T> for Commitment<E>
33where
34 T: AffineRepr,
35 E: Pairing<G1Affine = T>,
36{
37 fn as_ref(&self) -> &T {
38 &self.0
39 }
40}