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