Skip to main content

UiSignal

Enum UiSignal 

Source
pub enum UiSignal {
    LogLine {
        step: Option<StepId>,
        icon: Icon,
        text: String,
    },
    Progress {
        step: StepId,
        phase: String,
        fraction: Option<f32>,
    },
    CeremonyOverview {
        description: Option<String>,
        materials: Vec<MaterialOverview>,
        step_count: usize,
    },
    SystemInfo(Box<SystemInfo>),
    Environment(Environment),
}
Expand description

Transient UI-only signal. Never written to the transcript.

Signals are operator-assistance, not evidence. A frontend may drop any variant without affecting correctness or the transcript (this is exactly why headless and console ignore most of them). To persist information, emit a StepFact from an action; nothing here is ever promoted into the transcript. See docs/development/runtime-and-frontend.md for the full fact-vs-signal model.

The enum is intentionally not #[non_exhaustive]: it is a workspace-internal protocol type, and forcing every frontend to match each variant exhaustively (no wildcard arms) is the wanted compile-time check that a new signal is consciously handled or ignored everywhere. Public-API enums still get #[non_exhaustive].

Variants fall into three sub-families:

  • narration: ephemeral lines and progress (LogLine, Progress).
  • one-shot structured: a single snapshot emitted at ceremony start (CeremonyOverview, SystemInfo).
  • re-emittable structured: state the runtime may resend during the run; the frontend replaces its view on each (Environment).

Variants§

§

LogLine

Human-readable narration line for the live UI.

Fields

§step: Option<StepId>

Step the line belongs to (if any).

§icon: Icon

Visual cue.

§text: String

Line text.

§

Progress

Progress signal for spinners and progress bars.

Fields

§step: StepId

Step the progress belongs to.

§phase: String

Short phase label (e.g. signing, verifying).

§fraction: Option<f32>

Optional completion fraction in [0.0, 1.0].

§

CeremonyOverview

Descriptive metadata for the pre-ceremony overview screen. Emitted once, right after StepFact::CeremonyStarted. Deliberately kept out of the transcript: the YAML is the source of truth for these fields, and embedding them in the persisted record would bloat every transcript with data that the verifier could pull from the ceremony source instead.

Fields

§description: Option<String>

Optional ceremony description.

§materials: Vec<MaterialOverview>

Declared materials, in declaration order.

§step_count: usize

Total number of steps in the execution plan.

§

SystemInfo(Box<SystemInfo>)

Static build and host identity for the System tab. Emitted once, right after CeremonyOverview. UI-only: machine identity that belongs in the transcript is recorded by the machine_info action, not fed in through this channel.

Boxed: SystemInfo is much larger than the other variants, and keeping the enum (and ExecEvent) small avoids bloating every channel message.

§

Environment(Environment)

Live device inventory for the System tab. Emitted once today, but shaped to be re-emitted: the frontend replaces its environment view on each, so a future live observer is purely additive. UI-only, never persisted.

Trait Implementations§

Source§

impl Clone for UiSignal

Source§

fn clone(&self) -> UiSignal

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 Debug for UiSignal

Source§

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

Formats the value using the given formatter. Read more

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.