Skip to main content

FlashUpdate

Enum FlashUpdate 

Source
pub enum FlashUpdate {
    Progress {
        progress: f32,
        bytes_written: u64,
        speed_mb_s: f32,
    },
    VerifyProgress {
        phase: &'static str,
        overall: f32,
        bytes_read: u64,
        total_bytes: u64,
        speed_mb_s: f32,
    },
    Message(String),
    Completed,
    Failed(String),
}
Expand description

A normalised progress event suitable for consumption by any frontend (Iced GUI, Ratatui TUI, or future integrations).

Both the GUI’s FlashProgress and the TUI’s FlashEvent wrapper types were independently duplicating this shape. By defining it once in core and converting from FlashEvent via From, each frontend only needs to bridge this into its own message/command type.

Key differences from the raw FlashEvent:

  • Progress carries a normalised 0.0–1.0 write fraction (the raw event only carries raw byte counts; the fraction is computed here).
  • VerifyProgress carries a pre-computed overall spanning both passes (via verify_overall_progress) so frontends never need to duplicate that formula.
  • Stage and Log are both collapsed into Message(String) since both frontends treat them as human-readable status text.
  • Done / Error become Completed / Failed to match conventional naming in UI code.

Variants§

§

Progress

Write progress.

progress is bytes_written / total_bytes clamped to [0.0, 1.0].

Fields

§progress: f32
§bytes_written: u64
§speed_mb_s: f32
§

VerifyProgress

Verification read-back progress spanning both passes.

overall is in [0.0, 1.0]:

  • image pass → [0.0, 0.5]
  • device pass → [0.5, 1.0]

Fields

§phase: &'static str
§overall: f32
§bytes_read: u64
§total_bytes: u64
§speed_mb_s: f32
§

Message(String)

Human-readable status text (stage label or log line).

§

Completed

The flash pipeline finished successfully.

§

Failed(String)

The flash pipeline failed; the string is a human-readable error.

Trait Implementations§

Source§

impl Clone for FlashUpdate

Source§

fn clone(&self) -> FlashUpdate

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 FlashUpdate

Source§

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

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

impl From<FlashEvent> for FlashUpdate

Source§

fn from(event: FlashEvent) -> Self

Convert a raw pipeline FlashEvent into a FlashUpdate.

  • Progress raw byte counts → normalised 0.0–1.0 fraction.
  • VerifyProgress per-pass fraction → overall 0.0–1.0 via verify_overall_progress.
  • Stage display string and Log string → Message.
  • DoneCompleted, ErrorFailed.

Auto Trait Implementations§

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

Source§

type Output = T

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