Skip to main content

nnrp_runtime/
error.rs

1use thiserror::Error;
2
3use crate::transport::RuntimeTransportKind;
4
5#[derive(Debug, Error)]
6pub enum RuntimeError {
7    #[error("transport I/O failed: {0}")]
8    Io(#[from] std::io::Error),
9
10    #[error("protocol validation failed: {0}")]
11    Protocol(#[from] nnrp_core::NnrpError),
12
13    #[error("unsupported transport: {0}")]
14    UnsupportedTransport(&'static str),
15
16    #[error("frame id overflowed")]
17    FrameIdOverflow,
18
19    #[error("runtime frame too large: declared {declared} bytes exceeds max {max} bytes")]
20    FrameTooLarge { declared: usize, max: usize },
21
22    #[error("runtime transport {transport:?} closed: {detail}")]
23    TransportClosed {
24        transport: RuntimeTransportKind,
25        detail: String,
26    },
27
28    #[error("unexpected runtime message: {0}")]
29    UnexpectedMessage(&'static str),
30
31    #[error("runtime internal error: {0}")]
32    Internal(&'static str),
33}