rusmpp_core/udhs/
errors.rs1#[derive(Debug)]
5pub enum ConcatenatedShortMessageError {
6 TotalPartsZero,
8 PartNumberZero,
10 PartNumberExceedsTotalParts { part_number: u8, total_parts: u8 },
12}
13
14impl core::fmt::Display for ConcatenatedShortMessageError {
15 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
16 match self {
17 Self::PartNumberZero => {
18 write!(f, "Part number cannot be zero")
19 }
20 Self::PartNumberExceedsTotalParts {
21 part_number,
22 total_parts,
23 } => {
24 write!(
25 f,
26 "Part number {} exceeds total parts {}",
27 part_number, total_parts
28 )
29 }
30 Self::TotalPartsZero => {
31 write!(f, "Total parts cannot be zero")
32 }
33 }
34 }
35}
36
37impl core::error::Error for ConcatenatedShortMessageError {}
38
39impl From<ConcatenatedShortMessageError> for crate::decode::ConcatenatedShortMessageDecodeError {
40 fn from(err: ConcatenatedShortMessageError) -> Self {
41 match err {
42 ConcatenatedShortMessageError::PartNumberZero => {
43 crate::decode::ConcatenatedShortMessageDecodeError::PartNumberZero
44 }
45 ConcatenatedShortMessageError::PartNumberExceedsTotalParts {
46 part_number,
47 total_parts,
48 } => crate::decode::ConcatenatedShortMessageDecodeError::PartNumberExceedsTotalParts {
49 part_number,
50 total_parts,
51 },
52 ConcatenatedShortMessageError::TotalPartsZero => {
53 crate::decode::ConcatenatedShortMessageDecodeError::TotalPartsZero
54 }
55 }
56 }
57}
58
59impl From<ConcatenatedShortMessageError> for crate::decode::DecodeError {
60 fn from(err: ConcatenatedShortMessageError) -> Self {
61 crate::decode::DecodeError::concatenated_short_message_decode_error(From::from(err))
62 }
63}