Skip to main content

miden_note_transport_node/
error.rs

1use thiserror::Error;
2
3use crate::database::DatabaseError;
4
5/// Main error type
6#[derive(Error, Debug)]
7pub enum Error {
8    /// Database error
9    #[error("Database error: {0}")]
10    Database(#[from] DatabaseError),
11
12    /// IO error
13    #[error("IO error: {0}")]
14    Io(#[from] std::io::Error),
15
16    /// gRPC error-status
17    #[error("gRPC error: {0}")]
18    GrpcStatus(Box<tonic::Status>),
19
20    /// gRPC connection error
21    #[error("gRPC error: {0}")]
22    GrpcTransport(#[from] tonic::transport::Error),
23
24    /// Internal node error
25    #[error("Internal server error: {0}")]
26    Internal(String),
27
28    /// Generic node error
29    #[error("Error: {0}")]
30    Generic(#[from] anyhow::Error),
31}
32
33impl From<tonic::Status> for Error {
34    fn from(status: tonic::Status) -> Self {
35        Error::GrpcStatus(Box::new(status))
36    }
37}
38
39/// Main result type
40pub type Result<T> = std::result::Result<T, Error>;