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