1use std::io;
2
3use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum Error {
8 #[error("I/O error: {0}")]
10 Io(#[from] io::Error),
11 #[error("ring setup: {0}")]
13 RingSetup(String),
14 #[error("buffer registration: {0}")]
16 BufferRegistration(String),
17 #[error("connection limit reached")]
19 ConnectionLimitReached,
20 #[error("invalid connection")]
22 InvalidConnection,
23 #[error("send pool exhausted")]
25 SendPoolExhausted,
26 #[error("invalid memory region ID")]
28 InvalidRegion,
29 #[error("pointer not within registered region")]
31 PointerOutOfRegion,
32 #[error("{0}")]
34 ResourceLimit(String),
35}
36
37#[derive(Debug, Error)]
39pub enum UdpSendError {
40 #[error("UDP send pool exhausted")]
42 PoolExhausted,
43 #[error("UDP submission queue full")]
45 SubmissionQueueFull,
46 #[error("UDP I/O error: {0}")]
48 Io(#[from] io::Error),
49}
50
51#[derive(Debug, Clone, PartialEq, Eq, Error)]
54#[error("timer slot pool exhausted")]
55pub struct TimerExhausted;