iptr_decoder/
error.rs

1//! This module contains definition of errors made when decoding
2
3use core as std; // workaround for `perfect_derive`
4
5use perfect_derive::perfect_derive;
6use thiserror::Error;
7
8use crate::HandlePacket;
9
10/// Error for the decoding
11#[derive(Error)]
12#[perfect_derive(Debug)]
13#[non_exhaustive]
14pub enum DecoderError<H: HandlePacket> {
15    /// Packet handler error
16    #[error("Packet handler error")]
17    PacketHandler(#[source] H::Error),
18    /// Invalid packet
19    #[error("Invalid packet")]
20    InvalidPacket,
21    /// No PSB packet found
22    ///
23    /// The PSB packet is required to be the start position
24    /// for decoding
25    #[error("No PSB packet found")]
26    NoPsb,
27    /// Unexpected EOF
28    #[error("Unexpected EOF")]
29    UnexpectedEOF,
30}
31
32pub(crate) type DecoderResult<T, H> = core::result::Result<T, DecoderError<H>>;