1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
use num_enum::{IntoPrimitive, TryFromPrimitive, TryFromPrimitiveError};
use crate::error::Error;
impl From<ErrorCode> for Error {
fn from(ec: ErrorCode) -> Error {
use ErrorCode::*;
match ec {
Ok => Error::UnexpectedError("error code 0 is treated as error".to_string()),
MarshallingError => Error::MarshallingError,
BadArguments => Error::BadArguments(&"server error"),
NoNode => Error::NoNode,
NoAuth => Error::NoAuth,
BadVersion => Error::BadVersion,
NoChildrenForEphemerals => Error::NoChildrenForEphemerals,
NodeExists => Error::NodeExists,
NotEmpty => Error::NotEmpty,
SessionExpired => Error::SessionExpired,
InvalidAcl => Error::InvalidAcl,
AuthFailed | SessionClosedRequireSaslAuth => Error::AuthFailed,
SessionMoved => Error::SessionMoved,
NotReadOnly => Error::NotReadOnly,
NoWatcher => Error::NoWatcher,
ReconfigDisabled => Error::ReconfigDisabled,
QuotaExceeded => Error::QuotaExceeded,
Throttled => Error::Throttled,
}
}
}
#[repr(i32)]
#[derive(Copy, Clone, Debug, PartialEq, Eq, IntoPrimitive, TryFromPrimitive)]
pub enum ErrorCode {
Ok = 0,
MarshallingError = -5,
BadArguments = -8,
NoNode = -101,
NoAuth = -102,
BadVersion = -103,
NoChildrenForEphemerals = -108,
NodeExists = -110,
NotEmpty = -111,
SessionExpired = -112,
InvalidAcl = -114,
AuthFailed = -115,
SessionMoved = -118,
NotReadOnly = -119,
NoWatcher = -122,
ReconfigDisabled = -123,
SessionClosedRequireSaslAuth = -124,
QuotaExceeded = -125,
Throttled = -127,
}
impl From<TryFromPrimitiveError<ErrorCode>> for Error {
fn from(err: TryFromPrimitiveError<ErrorCode>) -> Error {
return Error::UnexpectedErrorCode(err.number);
}
}