1use thiserror::Error;
2
3use crate::cache::CacheError;
4use crate::crypto::CryptoError;
5use crate::utils::socket::SocketError;
6
7#[derive(Error, Debug)]
8pub enum FlowControllerError {
9 #[error("error creating a flow manager: {}", .0.to_string())]
10 SocketError(#[source] SocketError),
11
12 #[error("packet too long to be sent with given configuration: {expected} < {overhead} ({actual} + overhead)")]
13 OversizePacket {
14 expected: usize,
15 actual: usize,
16 overhead: usize,
17 },
18
19 #[error("error accessing cached cipher: {}", .0.to_string())]
20 MissingCache(#[source] CacheError),
21
22 #[error("error encrypting packet tailer: {}", .0.to_string())]
23 TailerEncryption(#[source] CryptoError),
24
25 #[error("flow config assertion failed: {message}")]
26 AssertionFailed {
27 message: String,
28 },
29
30 #[error("user not found in flow manager: {identity}")]
31 UserNotFound {
32 identity: String,
33 },
34}