esp_partition_table/
result.rs

1use core::fmt;
2
3/// Partition manipulation error
4#[derive(Clone, Copy, Debug, PartialEq, Eq)]
5pub enum PartitionError {
6    /// Magic bytes is not a valid
7    InvalidMagic,
8
9    /// Partition type is not a valid
10    InvalidType(u8),
11
12    /// Partition subtype is not a valid
13    InvalidSubType(u8),
14
15    /// User-defined type is not a valid
16    InvalidUserType(u8),
17
18    /// OTA partition number is not a valid
19    InvalidOtaNumber(u8),
20
21    /// String data is not a valid
22    InvalidString,
23
24    /// Partition alignment is not a valid
25    InvalidAlignment,
26
27    /// MD5 checksum is not a valid
28    InvalidMd5,
29
30    /// Not enough data
31    NotEnoughData,
32
33    /// Too many data
34    TooManyData,
35}
36
37impl fmt::Display for PartitionError {
38    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
39        use PartitionError::*;
40        match self {
41            InvalidMagic => "Invalid magic".fmt(f),
42            InvalidType(ty) => {
43                "Invalid type: ".fmt(f)?;
44                ty.fmt(f)
45            }
46            InvalidSubType(ty) => {
47                "Invalid sub type: ".fmt(f)?;
48                ty.fmt(f)
49            }
50            InvalidUserType(ty) => {
51                "Invalid user type: ".fmt(f)?;
52                ty.fmt(f)
53            }
54            InvalidOtaNumber(no) => {
55                "Invalid OTA: #".fmt(f)?;
56                no.fmt(f)
57            }
58            InvalidString => "Invalid string".fmt(f),
59            InvalidAlignment => "Invalid alignment".fmt(f),
60            InvalidMd5 => "Invalid MD5".fmt(f),
61            NotEnoughData => "Not enough data".fmt(f),
62            TooManyData => "Too many data".fmt(f),
63        }
64    }
65}