Chunk

Enum Chunk 

Source
pub enum Chunk {
    Raw {
        start: u64,
        size: u64,
    },
    Fill {
        start: u64,
        size: u64,
        value: u32,
    },
    DontCare {
        start: u64,
        size: u64,
    },
    Crc32 {
        checksum: u32,
    },
}

Variants§

§

Raw

Raw represents a set of blocks to be written to disk as-is. start is the offset in the expanded image at which the Raw section starts. start and size are in bytes, but must be block-aligned.

Fields

§start: u64
§size: u64
§

Fill

Fill represents a Chunk that has the value repeated enough to fill size bytes. start is the offset in the expanded image at which the Fill section starts. start and size are in bytes, but must be block-aligned.

Fields

§start: u64
§size: u64
§value: u32
§

DontCare

DontCare represents a set of blocks that need to be “offset” by the image recipient. If an image needs to be broken up into two sparse images, and we flash n bytes for Sparse Image 1, Sparse Image 2 needs to start with a DontCareChunk with (n/blocksize) blocks as its “size” property. start is the offset in the expanded image at which the DontCare section starts. start and size are in bytes, but must be block-aligned.

Fields

§start: u64
§size: u64
§

Crc32

Crc32Chunk is used as a checksum of a given set of Chunks for a SparseImage. This is not required and unused in most implementations of the Sparse Image format. The type is included for completeness. It has 4 bytes of CRC32 checksum as describable in a u32.

Fields

§checksum: u32

Implementations§

Source§

impl Chunk

Source

pub fn read_metadata<R: Read>( reader: &mut R, offset: u64, block_size: u32, ) -> Result<Self>

Attempts to read a Chunk from reader. The reader will be positioned at the first byte following the chunk header and any extra data; for a Raw chunk this means it will point at the data payload, and for other chunks it will point at the next chunk header (or EOF). offset is the current offset in the logical volume.

Trait Implementations§

Source§

impl Clone for Chunk

Source§

fn clone(&self) -> Chunk

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Chunk

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for Chunk

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Chunk

Source§

fn eq(&self, other: &Chunk) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for Chunk

Auto Trait Implementations§

§

impl Freeze for Chunk

§

impl RefUnwindSafe for Chunk

§

impl Send for Chunk

§

impl Sync for Chunk

§

impl Unpin for Chunk

§

impl UnwindSafe for Chunk

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

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

Source§

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>,

Source§

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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V