Add BlockingPartition

This commit is contained in:
Rasmus Melchior Jacobsen
2023-05-27 10:29:21 +02:00
parent bea42a78a4
commit 6d8f409018
4 changed files with 159 additions and 23 deletions

View File

@ -0,0 +1,30 @@
//! Flash Partition utilities
use embedded_storage::nor_flash::{NorFlashError, NorFlashErrorKind};
#[cfg(feature = "nightly")]
mod asynch;
mod blocking;
#[cfg(feature = "nightly")]
pub use asynch::Partition;
pub use blocking::BlockingPartition;
/// Partition error
#[derive(Debug)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum Error<T> {
/// The requested flash area is outside the partition
OutOfBounds,
/// Underlying flash error
Flash(T),
}
impl<T: NorFlashError> NorFlashError for Error<T> {
fn kind(&self) -> NorFlashErrorKind {
match self {
Error::OutOfBounds => NorFlashErrorKind::OutOfBounds,
Error::Flash(f) => f.kind(),
}
}
}