use primitives::algebra::elliptic_curve::Curve;
use crate::circuit::{
v1::ops::{FieldPlaintextBinaryOp, FieldPlaintextUnaryOp},
v2::errors::CircuitError,
};
#[derive(Debug, Clone, PartialEq, Eq, thiserror::Error)]
pub enum OpsConversionError {
#[error("Cannot transform FieldPlaintextUnaryOp {0:?} into BitPlaintextUnaryOp")]
PlaintextUnaryOpFieldToBit(FieldPlaintextUnaryOp),
#[error("Cannot transform FieldPlaintextBinaryOp {0:?} into BitPlaintextBinaryOp")]
PlaintextBinaryOpFieldToBit(FieldPlaintextBinaryOp),
}
#[derive(Debug, Clone, PartialEq, Eq, thiserror::Error)]
pub enum ConversionErrorToV2<C: Curve> {
#[error("{0}")]
OpsConversionError(#[from] OpsConversionError),
#[error("{0}")]
CircuitError(#[from] CircuitError<C>),
#[error("Deserialization error: {0}")]
Deserialization(String),
}