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 pcs::prelude::PCSErrors;
7use transcript::TranscriptErrors;
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(TranscriptErrors),
28 /// Arithmetic Error: {0}
29 ArithmeticErrors(ArithErrors),
30 /// PCS error {0}
31 PCSErrors(PCSErrors),
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<TranscriptErrors> for PolyIOPErrors {
41 fn from(e: TranscriptErrors) -> 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<PCSErrors> for PolyIOPErrors {
53 fn from(e: PCSErrors) -> Self {
54 Self::PCSErrors(e)
55 }
56}