arcium-core-utils 0.4.5

Arcium core utils
Documentation
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),
}