doip_codec/
error.rs

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