fuse_core/
error.rs

1//! Error types for VCE protocol
2
3use thiserror::Error;
4
5pub type Result<T> = std::result::Result<T, VceError>;
6
7#[derive(Error, Debug)]
8pub enum VceError {
9    #[error("Invalid specification: {0}")]
10    InvalidSpec(String),
11
12    #[error("Invalid envelope format: {0}")]
13    InvalidEnvelope(String),
14
15    #[error("Proof verification failed: {0}")]
16    ProofVerificationFailed(String),
17
18    #[error("Spec expired: expiry date {0}")]
19    SpecExpired(String),
20
21    #[error("IO error: {0}")]
22    Io(#[from] std::io::Error),
23
24    #[error("Serialization error: {0}")]
25    Serialization(#[from] serde_json::Error),
26
27    #[error("YAML parsing error: {0}")]
28    YamlParsing(#[from] serde_yaml::Error),
29
30    #[error("RISC Zero error: {0}")]
31    RiscZero(String),
32
33    #[error("Proof generation failed: {0}")]
34    ProofGenerationFailed(String),
35
36    #[error("Guest program execution error: {0}")]
37    GuestProgramExecution(String),
38
39    #[error("Input serialization error: {0}")]
40    InputSerialization(String),
41
42    #[error("Receipt deserialization error: {0}")]
43    ReceiptDeserialization(String),
44}
45