moq_transport/serve/
error.rs

1#[derive(thiserror::Error, Debug, Clone, PartialEq)]
2pub enum ServeError {
3    // TODO stop using?
4    #[error("done")]
5    Done,
6
7    #[error("cancelled")]
8    Cancel,
9
10    #[error("closed, code={0}")]
11    Closed(u64),
12
13    #[error("not found")]
14    NotFound,
15
16    #[error("duplicate")]
17    Duplicate,
18
19    #[error("multiple stream modes")]
20    Mode,
21
22    #[error("wrong size")]
23    Size,
24
25    #[error("internal error: {0}")]
26    Internal(String),
27}
28
29impl ServeError {
30    pub fn code(&self) -> u64 {
31        match self {
32            Self::Done => 0,
33            Self::Cancel => 1,
34            Self::Closed(code) => *code,
35            Self::NotFound => 404,
36            Self::Duplicate => 409,
37            Self::Mode => 400,
38            Self::Size => 413,
39            Self::Internal(_) => 500,
40        }
41    }
42}