doip_codec/
error.rs

1use derive_more::From;
2
3/// Custom Result type which allows for easier typing of errors across the API.
4pub type Result<T> = core::result::Result<T, Error>;
5
6/// Custom Error enum for deriving error types across the application and API.
7///
8/// Expand to fit new dependencies using `#[from]` and implement custom error types
9/// with context.
10#[derive(Debug, From)]
11pub enum Error {
12    /// Derived implementation for standard library IO errors
13    #[from]
14    #[cfg(feature = "std")]
15    IoError(std::io::Error),
16
17    /// Derived implementation for Doip Definition errors
18    #[from]
19    DefinitionError(doip_definitions::error::Error),
20
21    /// Derived implementation for standard library Slice errors
22    #[from]
23    #[allow(clippy::enum_variant_names)]
24    SliceError(core::array::TryFromSliceError),
25
26    /// Derived for heapless extend from slice errors
27    #[from]
28    Heapless(()),
29}
30
31impl core::fmt::Display for Error {
32    fn fmt(&self, fmt: &mut core::fmt::Formatter) -> core::result::Result<(), core::fmt::Error> {
33        write!(fmt, "{self:?}")
34    }
35}