dbus_message_parser/decode/
error.rs1use crate::{
2 decode::MAXIMUM_VARIANT_DEPTH,
3 message::{MessageHeaderError, MessageHeaderFieldsError},
4 value::{
5 BusError, ErrorError, InterfaceError, MemberError, ObjectPathError, StructError, Type,
6 TypeError, MAXIMUM_ARRAY_LENGTH,
7 },
8};
9use std::str::Utf8Error;
10use thiserror::Error;
11
12pub type DecodeResult<T> = Result<T, DecodeError>;
13
14#[derive(Debug, PartialEq, Error)]
16pub enum DecodeError {
17 #[error("Not enough bytes to decode: got {0} offset {1}")]
18 NotEnoughBytes(usize, usize),
19 #[error("Boolean value only can be 0 or 1: {0}")]
20 InvalidBoolean(u32),
21 #[error("Could not decode string as UTF-8: {0}")]
22 Utf8Error(#[from] Utf8Error),
23 #[error("Last byte is not null: {0}")]
24 StringNotNull(u8),
25 #[error("Could not decode Bus: {0}")]
26 BusError(#[from] BusError),
27 #[error("Could not decode ObjectPath: {0}")]
28 ObjectPathError(#[from] ObjectPathError),
29 #[error("Could not decode Interface: {0}")]
30 InterfaceError(#[from] InterfaceError),
31 #[error("Could not decode Member: {0}")]
32 MemberError(#[from] MemberError),
33 #[error("Could not decode Error: {0}")]
34 ErrorError(#[from] ErrorError),
35 #[error("Could not decode Signature: {0}")]
36 SignatureError(#[from] TypeError),
37 #[error("Could not decode Struct: {0}")]
38 StructError(#[from] StructError),
39 #[error("Padding is not zero: {0}")]
40 Padding(u8),
41 #[error("Array length is too big: {MAXIMUM_ARRAY_LENGTH} < {0}")]
42 ArrayTooBig(u32),
43 #[error("Array is invalid: got {0} excepted {1}")]
44 ArrayInvalidLength(usize, usize),
45 #[error("Could not decode the endianness: {0}")]
46 Endianness(u8),
47 #[error("Could not decode MessageType: {0}")]
48 MessageType(u8),
49 #[error("Could not decode MessageFlags: {0}")]
50 MessageFlags(u8),
51 #[error("The body length is zero, but there is a body signature '{0:?}'")]
52 BodyLengthZero(Vec<Type>),
53 #[error("The body signature is missing, but there body length 0 != {0}")]
54 BodySignatureMissing(u32),
55 #[error("Not enough FDs: got {0} offset {1}")]
56 NotEnoughFds(usize, usize),
57 #[error("Could not the body: expected {0} got {1}")]
58 BodyLength(usize, usize),
59 #[error("Could not decode MessageHeader: {0}")]
60 MessageHeaderError(#[from] MessageHeaderError),
61 #[error("Could not decode MessageHeaderFields: {0}")]
62 MessageHeaderFieldsError(#[from] MessageHeaderFieldsError),
63 #[error("Integer overflows occours: {0} + {1}")]
64 IntegerOverflow(usize, usize),
65 #[error("Variant depth is too big: {MAXIMUM_VARIANT_DEPTH} < {0}")]
66 VariantDepth(u8),
67}