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