Skip to main content

Staging

Struct Staging 

Source
pub struct Staging<'a, S: SlotStore> { /* private fields */ }
Expand description

A slot open for an image, with the manifest’s promises still to be met.

The slot’s record is only written once the image has been verified whole, so an interrupted transfer leaves a slot that is never bootable rather than one holding half an image.

Implementations§

Source§

impl<S: SlotStore> Staging<'_, S>

Source

pub fn write(&mut self, chunk: &[u8]) -> Result<()>

Takes the next piece of the image.

§Arguments
  • chunk - the next bytes of the image, in order.
§Returns

Ok(()) once the chunk is hashed and stored.

§Errors

Returns Refusal::Size if more bytes arrive than the manifest declared, or Refusal::SlotTooSmall if the slot cannot take them.

Source

pub fn progress(&self) -> (u32, u32)

Reports how much of the image has arrived.

§Returns

The bytes stored so far and the total the manifest declares.

Source

pub fn finish(self) -> Result<u8>

Finishes the image and marks the slot bootable if it matched.

§Returns

The slot now holding a staged image.

§Errors

Returns Refusal::Size or Refusal::Digest if the image is not the one the manifest described, leaving the slot unbootable.

Source

pub fn manifest(&self) -> &Manifest

Returns the manifest this staging is fulfilling.

§Returns

The verified manifest.

Auto Trait Implementations§

§

impl<'a, S> !UnwindSafe for Staging<'a, S>

§

impl<'a, S> Freeze for Staging<'a, S>

§

impl<'a, S> RefUnwindSafe for Staging<'a, S>
where S: RefUnwindSafe,

§

impl<'a, S> Send for Staging<'a, S>
where S: Send,

§

impl<'a, S> Sync for Staging<'a, S>
where S: Sync,

§

impl<'a, S> Unpin for Staging<'a, S>

§

impl<'a, S> UnsafeUnpin for Staging<'a, S>

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> Same for T

Source§

type Output = T

Should always be Self
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.