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