Skip to main content

Bundle

Struct Bundle 

Source
pub struct Bundle<'a> { /* private fields */ }
Expand description

A validated bundle: a handle onto the buffer it was parsed from.

Holding one is the proof that every check in this module passed, which is why walking it with iter cannot fail.

Implementations§

Source§

impl<'a> Bundle<'a>

Source

pub fn parse(format: &Format, bytes: &'a [u8]) -> Result<Bundle<'a>, Error>

Checks bytes against format and returns a handle to it.

Allocates nothing: the result borrows the buffer.

§Order of checks

The checksum is verified before any entry is walked. A transfer that lost bytes produces lengths that still look plausible, and reporting the first one that happens not to fit describes a symptom rather than what went wrong.

Source

pub fn count(&self) -> usize

How many entries it holds.

Source

pub fn iter(&self) -> Iter<'a> ⓘ

The entries, in the order they were packed.

Not the order they should be written in — see Role.

Source

pub fn kernel(&self) -> Option<Entry<'a>>

The entry carrying the boot image, if the bundle has one.

A bundle without a kernel is valid and useful: it updates a website or a settings file without rewriting an image that has not changed.

Trait Implementations§

Source§

impl<'a> Clone for Bundle<'a>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<'a> Copy for Bundle<'a>

Source§

impl<'a> Debug for Bundle<'a>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Bundle<'a>

§

impl<'a> RefUnwindSafe for Bundle<'a>

§

impl<'a> Send for Bundle<'a>

§

impl<'a> Sync for Bundle<'a>

§

impl<'a> Unpin for Bundle<'a>

§

impl<'a> UnsafeUnpin for Bundle<'a>

§

impl<'a> UnwindSafe for Bundle<'a>

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.