arnaucube
arnaucube/hyperplonkPublic Self-hosted repository
hyperplonk/hyperplonk/src/errors.rs
hyperplonk/src/errors.rsRaw
 1//! Error module.
 2
 3use arithmetic::ArithErrors;
 4use ark_serialize::SerializationError;
 5use ark_std::string::String;
 6use displaydoc::Display;
 7use pcs::prelude::PCSErrors;
 8use poly_iop::prelude::PolyIOPErrors;
 9use transcript::TranscriptErrors;
10
11/// A `enum` specifying the possible failure modes of hyperplonk.
12#[derive(Display, Debug)]
13pub enum HyperPlonkErrors {
14    /// Invalid Prover: {0}
15    InvalidProver(String),
16    /// Invalid Verifier: {0}
17    InvalidVerifier(String),
18    /// Invalid Proof: {0}
19    InvalidProof(String),
20    /// Invalid parameters: {0}
21    InvalidParameters(String),
22    /// An error during (de)serialization: {0}
23    SerializationError(SerializationError),
24    /// PolyIOP error {0}
25    PolyIOPErrors(PolyIOPErrors),
26    /// PCS error {0}
27    PCSErrors(PCSErrors),
28    /// Transcript error {0}
29    TranscriptError(TranscriptErrors),
30    /// Arithmetic Error: {0}
31    ArithmeticErrors(ArithErrors),
32}
33
34impl From<SerializationError> for HyperPlonkErrors {
35    fn from(e: ark_serialize::SerializationError) -> Self {
36        Self::SerializationError(e)
37    }
38}
39
40impl From<PolyIOPErrors> for HyperPlonkErrors {
41    fn from(e: PolyIOPErrors) -> Self {
42        Self::PolyIOPErrors(e)
43    }
44}
45
46impl From<PCSErrors> for HyperPlonkErrors {
47    fn from(e: PCSErrors) -> Self {
48        Self::PCSErrors(e)
49    }
50}
51
52impl From<TranscriptErrors> for HyperPlonkErrors {
53    fn from(e: TranscriptErrors) -> Self {
54        Self::TranscriptError(e)
55    }
56}
57
58impl From<ArithErrors> for HyperPlonkErrors {
59    fn from(e: ArithErrors) -> Self {
60        Self::ArithmeticErrors(e)
61    }
62}