Skip to main content

Event

Enum Event 

Source
pub enum Event {
    Message(String),
    Detail(String),
    Artifact(Box<dyn Artifact>),
    Process(Box<ProcessEvent>),
    Prompt(Box<PromptRequest>),
}
Expand description

Structured output event produced by commands

An Event represents a single piece of output that a command has produced. Events travel from the producer through an async channel to the Presenter, decoupling production from rendering.

Five variants:

  • Message — informational text (shown at default verbosity and above).
  • Detail — supplementary text (shown only at verbose verbosity).
  • Event::Artifact — the primary data a command produces, carried as a trait object that the Presenter can render via Display or Serialize.
  • Event::Process — one step in the run of an external program that the command started.
  • Event::Prompt — a question for the user, with the reply that answers it.

The Presenter decides which events to render based on its verbosity setting. Verbosity does not apply to a prompt, because the command waits for the answer. A presenter that cannot ask the user drops the request.

Variants§

§

Message(String)

Informational message

§

Detail(String)

Supplementary detail

§

Artifact(Box<dyn Artifact>)

Primary command output

§

Process(Box<ProcessEvent>)

One step in the run of an external program

The event is boxed so that the size of an Event stays that of its text variants. A run names its command in the events that start and end it, and an unboxed variant would make every message in the channel as large as that name.

§

Prompt(Box<PromptRequest>)

A question for the user

The request is boxed so that the size of an Event stays that of its text variants.

Trait Implementations§

Source§

impl Debug for Event

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Event

§

impl !UnwindSafe for Event

§

impl Freeze for Event

§

impl Send for Event

§

impl Sync for Event

§

impl Unpin for Event

§

impl UnsafeUnpin for Event

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