Struct embassy_embedded_hal::flash::ConcatFlash

source ·
pub struct ConcatFlash<First, Second>(/* private fields */);
Expand description

Convenience helper for concatenating two consecutive flashes into one. This is especially useful if used with “flash regions”, where one may want to concatenate multiple regions into one larger region.

Implementations§

source§

impl<First, Second> ConcatFlash<First, Second>

source

pub fn new(first: First, second: Second) -> Self

Create a new flash that concatenates two consecutive flashes.

Trait Implementations§

source§

impl<First, Second, E> ErrorType for ConcatFlash<First, Second>
where First: ErrorType<Error = E>, Second: ErrorType<Error = E>, E: NorFlashError,

§

type Error = E

Errors returned by this NOR flash.
source§

impl<First, Second, E> NorFlash for ConcatFlash<First, Second>
where First: NorFlash<Error = E>, Second: NorFlash<Error = E>, E: NorFlashError,

source§

const WRITE_SIZE: usize = _

The minumum number of bytes the storage peripheral can write
source§

const ERASE_SIZE: usize = _

The minumum number of bytes the storage peripheral can erase
source§

fn write(&mut self, offset: u32, bytes: &[u8]) -> Result<(), E>

If power is lost during write, the contents of the written words are undefined, but the rest of the page is guaranteed to be unchanged. It is not allowed to write to the same word twice. Read more
source§

fn erase(&mut self, from: u32, to: u32) -> Result<(), E>

Erase the given storage range, clearing all data within [from..to]. The given range will contain all 1s afterwards. Read more
source§

impl<First, Second, E> NorFlash for ConcatFlash<First, Second>
where First: AsyncNorFlash<Error = E>, Second: AsyncNorFlash<Error = E>, E: NorFlashError,

source§

const WRITE_SIZE: usize = _

The minumum number of bytes the storage peripheral can write
source§

const ERASE_SIZE: usize = _

The minumum number of bytes the storage peripheral can erase
source§

async fn write(&mut self, offset: u32, bytes: &[u8]) -> Result<(), E>

If power is lost during write, the contents of the written words are undefined, but the rest of the page is guaranteed to be unchanged. It is not allowed to write to the same word twice. Read more
source§

async fn erase(&mut self, from: u32, to: u32) -> Result<(), E>

Erase the given storage range, clearing all data within [from..to]. The given range will contain all 1s afterwards. Read more
source§

impl<First, Second, E> ReadNorFlash for ConcatFlash<First, Second>
where First: ReadNorFlash<Error = E>, Second: ReadNorFlash<Error = E>, E: NorFlashError,

source§

const READ_SIZE: usize = _

The minumum number of bytes the storage peripheral can read
source§

fn read(&mut self, offset: u32, bytes: &mut [u8]) -> Result<(), E>

Read a slice of data from the storage peripheral, starting the read operation at the given address offset, and reading bytes.len() bytes. Read more
source§

fn capacity(&self) -> usize

The capacity of the peripheral in bytes.
source§

impl<First, Second, E> ReadNorFlash for ConcatFlash<First, Second>
where First: AsyncReadNorFlash<Error = E>, Second: AsyncReadNorFlash<Error = E>, E: NorFlashError,

source§

const READ_SIZE: usize = _

The minumum number of bytes the storage peripheral can read
source§

async fn read(&mut self, offset: u32, bytes: &mut [u8]) -> Result<(), E>

Read a slice of data from the storage peripheral, starting the read operation at the given address offset, and reading bytes.len() bytes. Read more
source§

fn capacity(&self) -> usize

The capacity of the peripheral in bytes.

Auto Trait Implementations§

§

impl<First, Second> Freeze for ConcatFlash<First, Second>
where First: Freeze, Second: Freeze,

§

impl<First, Second> RefUnwindSafe for ConcatFlash<First, Second>
where First: RefUnwindSafe, Second: RefUnwindSafe,

§

impl<First, Second> Send for ConcatFlash<First, Second>
where First: Send, Second: Send,

§

impl<First, Second> Sync for ConcatFlash<First, Second>
where First: Sync, Second: Sync,

§

impl<First, Second> Unpin for ConcatFlash<First, Second>
where First: Unpin, Second: Unpin,

§

impl<First, Second> UnwindSafe for ConcatFlash<First, Second>
where First: UnwindSafe, Second: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.