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