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