Skip to main content

zip_plus/
lib.rs

1pub mod code;
2pub mod merkle;
3pub mod pcs;
4pub mod pcs_transcript;
5pub mod utils;
6
7use crypto_primitives::FieldError;
8use thiserror::Error;
9use zinc_transcript::TranscriptError;
10
11#[derive(Clone, Debug, PartialEq, Error)]
12pub enum ZipError {
13    #[error("Invalid PCS param: {0}")]
14    InvalidPcsParam(String),
15    #[error("Invalid commitment opening: {0}")]
16    InvalidPcsOpen(String),
17    #[error("Bad Snark: {0}")]
18    InvalidSnark(String),
19    #[error("Serialization Error: {0}")]
20    Serialization(String),
21    #[error("Transcript failure: {0}")]
22    Transcript(#[from] TranscriptError),
23    #[error("Error during polynomial evaluation: {0}")]
24    PolynomialEvaluationError(zinc_poly::EvaluationError),
25    #[error("Error during inner product computation: {0}")]
26    InnerProductError(zinc_utils::inner_product::InnerProductError),
27}
28
29impl From<zinc_poly::EvaluationError> for ZipError {
30    fn from(err: zinc_poly::EvaluationError) -> Self {
31        ZipError::PolynomialEvaluationError(err)
32    }
33}
34
35impl From<FieldError> for ZipError {
36    fn from(err: FieldError) -> Self {
37        ZipError::InvalidSnark(format!("Field error: {err}"))
38    }
39}
40
41impl From<zinc_utils::inner_product::InnerProductError> for ZipError {
42    fn from(err: zinc_utils::inner_product::InnerProductError) -> Self {
43        ZipError::InnerProductError(err)
44    }
45}