ecksport_core/
errors.rs

1use std::io;
2
3use thiserror::Error;
4
5#[derive(Debug, Error)]
6pub enum ConnError {
7    #[error("malformed frame")]
8    MalformedFrame,
9
10    #[error("unknown flags settings {0}")]
11    UnknownFlags(u8),
12
13    #[error("unknown frame type {0}")]
14    UnknownFrameType(u8),
15
16    #[error("frame too large ({0} B)")]
17    FrameTooLarge(usize),
18
19    #[error("auth: {0}")]
20    Auth(#[from] AuthError),
21
22    #[error("io: {0}")]
23    Io(#[from] io::Error),
24}
25
26#[derive(Debug, Error)]
27pub enum AuthError {
28    /// If we can determine it was incorrectly formatted, which might mean we're
29    /// unknowingly trying to use incompatible schemes.
30    #[error("malformed response to challenge")]
31    MalformedResp,
32
33    /// Response to the challenge was invalid, which probably means we're using
34    /// at least a superficially compatible scheme but they're trying to lie to
35    /// us or something is misconfigured.
36    #[error("invalid response to challenge")]
37    InvalidResp,
38
39    #[error("unsupported")]
40    Unsupported,
41}