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