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