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