1use core as std; use perfect_derive::perfect_derive;
6use thiserror::Error;
7
8use crate::HandlePacket;
9
10#[derive(Error)]
12#[perfect_derive(Debug)]
13#[non_exhaustive]
14pub enum DecoderError<H: HandlePacket> {
15 #[error("Packet handler error")]
17 PacketHandler(#[source] H::Error),
18 #[error("Invalid packet")]
20 InvalidPacket,
21 #[error("No PSB packet found")]
26 NoPsb,
27 #[error("Unexpected EOF")]
29 UnexpectedEOF,
30}
31
32pub(crate) type DecoderResult<T, H> = core::result::Result<T, DecoderError<H>>;