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#[allow(dead_code)]
13// todo: REMOVE
14#[derive(Display, Debug)]
15pub enum HyperPlonkErrors {
16    /// Invalid Prover: {0}
17    InvalidProver(String),
18    /// Invalid Verifier: {0}
19    InvalidVerifier(String),
20    /// Invalid Proof: {0}
21    InvalidProof(String),
22    /// Invalid parameters: {0}
23    InvalidParameters(String),
24    /// An error during (de)serialization: {0}
25    SerializationError(SerializationError),
26    /// PolyIOP error {0}
27    PolyIOPErrors(PolyIOPErrors),
28    /// PCS error {0}
29    PCSErrors(PCSErrors),
30    /// Transcript error {0}
31    TranscriptError(TranscriptErrors),
32    /// Arithmetic Error: {0}
33    ArithmeticErrors(ArithErrors),
34}
35
36impl From<SerializationError> for HyperPlonkErrors {
37    fn from(e: ark_serialize::SerializationError) -> Self {
38        Self::SerializationError(e)
39    }
40}
41
42impl From<PolyIOPErrors> for HyperPlonkErrors {
43    fn from(e: PolyIOPErrors) -> Self {
44        Self::PolyIOPErrors(e)
45    }
46}
47
48impl From<PCSErrors> for HyperPlonkErrors {
49    fn from(e: PCSErrors) -> Self {
50        Self::PCSErrors(e)
51    }
52}
53
54impl From<TranscriptErrors> for HyperPlonkErrors {
55    fn from(e: TranscriptErrors) -> Self {
56        Self::TranscriptError(e)
57    }
58}
59
60impl From<ArithErrors> for HyperPlonkErrors {
61    fn from(e: ArithErrors) -> Self {
62        Self::ArithmeticErrors(e)
63    }
64}