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}