Skip to main content

esp_nvs_partition_tool/
error.rs

1use thiserror::Error;
2
3/// Errors that can occur during CSV parsing, binary generation, or binary
4/// parsing of NVS partitions.
5#[derive(Error, Debug)]
6pub enum Error {
7    #[error("failed to parse CSV: {0}")]
8    CsvError(#[from] csv::Error),
9
10    #[error("io error: {0}")]
11    IoError(#[from] std::io::Error),
12
13    #[error("invalid entry type: {0}")]
14    InvalidType(String),
15
16    #[error("invalid encoding: {0}")]
17    InvalidEncoding(String),
18
19    #[error("invalid value: {0}")]
20    InvalidValue(String),
21
22    #[error("hex decoding error: {0}")]
23    HexError(#[from] hex::FromHexError),
24
25    #[error("base64 decoding error: {0}")]
26    Base64Error(#[from] base64::DecodeError),
27
28    #[error("missing namespace")]
29    MissingNamespace,
30
31    #[error("invalid key: {0}")]
32    InvalidKey(String),
33
34    #[error("partition size {0} is too small")]
35    PartitionTooSmall(usize),
36
37    #[error("invalid partition size {0}: must be a multiple of 4096 bytes")]
38    InvalidPartitionSize(usize),
39
40    #[error("too many namespaces (max 255)")]
41    TooManyNamespaces,
42
43    #[error("nvs error: {0}")]
44    NvsError(#[from] esp_nvs::error::Error),
45}