use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Default, Deserialize, Eq, Hash, PartialEq, Serialize)]
pub struct FirstReduceMessage<G1, G2, GT> {
pub d1_left: GT,
pub d1_right: GT,
pub d2_left: GT,
pub d2_right: GT,
pub e1_beta: G1,
pub e2_beta: G2,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, Hash, PartialEq, Serialize)]
pub struct FirstReduceChallenge<Scalar> {
pub beta: Scalar,
pub beta_inverse: Scalar,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, Hash, PartialEq, Serialize)]
pub struct SecondReduceMessage<G1, G2, GT> {
pub c_plus: GT,
pub c_minus: GT,
pub e1_plus: G1,
pub e1_minus: G1,
pub e2_plus: G2,
pub e2_minus: G2,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, Hash, PartialEq, Serialize)]
pub struct SecondReduceChallenge<Scalar> {
pub alpha: Scalar,
pub alpha_inverse: Scalar,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, Hash, PartialEq, Serialize)]
pub struct FoldScalarsChallenge<Scalar> {
pub gamma: Scalar,
pub gamma_inverse: Scalar,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, Hash, PartialEq, Serialize)]
pub struct ScalarProductMessage<G1, G2> {
pub e1: G1,
pub e2: G2,
}