1#[cfg(feature = "std")]
2use std::io;
3
4#[derive(thiserror::Error, Debug)]
6pub enum DecodeError {
7 #[error("exceeded available length")]
9 ExceededLength,
10
11 #[error("buffer too short")]
13 TooShort,
14
15 #[error("expected to be unreachable")]
17 Unreachable,
18
19 #[error("unable to convert to target bytes")]
21 TryFromBytes,
22
23 #[error("failed protocol validation")]
25 FailedProtocolValidation,
26
27 #[error("invalid header")]
29 InvalidHeader,
30
31 #[error("invalid payload")]
33 InvalidPayload,
34
35 #[error("invalid nack code")]
37 InvalidNackCode,
38
39 #[error("invalid invalid protocol version")]
41 InvalidProtocolVersion,
42
43 #[error("invalid invalid payload type")]
45 InvalidPayloadType,
46
47 #[error("invalid invalid action code")]
49 InvalidActionCode,
50
51 #[error("invalid invalid sync status")]
53 InvalidSyncStatus,
54
55 #[error("invalid invalid activation type")]
57 InvalidActivationType,
58
59 #[error("invalid invalid activation code")]
61 InvalidActivationCode,
62
63 #[error("invalid invalid node type")]
65 InvalidNodeType,
66
67 #[error("invalid invalid power mode")]
69 InvalidPowerMode,
70
71 #[error("invalid invalid diagnostic ack code")]
73 InvalidDiagnosticAckCode,
74
75 #[error("invalid invalid diagnostic nack code")]
77 InvalidDiagnosticNackCode,
78
79 #[error("message received is too large for buffer")]
81 MessageTooLarge,
82
83 #[error("Underlying I/O Error: {0}")]
85 #[cfg(feature = "std")]
86 IOError(#[from] io::Error),
87
88 #[error("buffer is too small")]
90 BufferTooSmall,
91}
92
93#[derive(thiserror::Error, Debug)]
95pub enum EncodeError {
96 #[error("failed protocol validation")]
98 FailedProtocolValidation,
99
100 #[error("payload type mismatch")]
102 PayloadTypeValidation,
103
104 #[error("payload length mismatch")]
106 PayloadLengthValidation,
107
108 #[error("buffer provided too small")]
110 BufferTooSmall,
111
112 #[error("Underlying I/O Error: {0}")]
114 #[cfg(feature = "std")]
115 IOError(#[from] io::Error),
116}