Skip to main content

TerminalReporter

Struct TerminalReporter 

Source
pub struct TerminalReporter { /* private fields */ }
Expand description

Renders subx_core::core::report channels to stdout/stderr.

Channel-and-suppression matrix (see the machine-readable-output capability):

ChannelStreamSuppressed when
diagnosticstderroutput mode is json
warnstderroutput mode is json
ai_usagestdoutoutput mode is json
progressstderroutput mode is json or --quiet

Messages are written verbatim followed by exactly one \n — no prefix, symbol, or colour — so a message replacing an eprintln! arrives byte-identically, and embedded newlines are written as one atomic block. --quiet silences progress only; diagnostics and warnings survive it.

§Batch progress bar ownership

This reporter is the single owner of the batch progress bar in the CLI (see expose-core-orchestration-apis). A ProgressEvent::Started constructs exactly one bar through crate::cli::ui::create_progress_bar — which force-hides it in JSON mode — and additionally hides it when enable_progress_bar (read once from the ConfigService at construction) is false. Advanced sets the position and, when an item is supplied, the message; Finished ends the bar and clears the slot (the old “All tasks completed” finish_with_message text is intentionally dropped — the final rendered frame shows {pos}/{len}). A Started while a bar is open replaces it rather than nesting. A Message received while a stream is open becomes the bar’s message (the parallel batch’s Active: … | Queued: … ticker) instead of a separate line; with no stream open, messages print as before. Structured events are processed in every output mode — suppression happens through the draw target, never by skipping the lifecycle.

Implementations§

Source§

impl TerminalReporter

Source

pub fn new(enable_progress_bar: bool) -> Self

Build a reporter honouring enable_progress_bar for every batch stream it renders.

Trait Implementations§

Source§

impl Default for TerminalReporter

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Reporter for TerminalReporter

Source§

fn diagnostic(&self, message: &str)

Human-oriented detail about work in progress. Not a failure. Read more
Source§

fn warn(&self, message: &str)

A non-fatal problem the operation recovered from or worked around. Read more
Source§

fn ai_usage(&self, usage: &AiUsage)

Token accounting for one completed AI API call. Read more
Source§

fn progress(&self, event: &ProgressEvent<'_>)

An event on the long-running-work progress stream. Read more
Source§

fn cancelled(&self) -> bool

Whether the operation being reported should stop early. 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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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<F, T> IntoSample<T> for F
where T: FromSample<F>,

Source§

fn into_sample(self) -> T

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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 = !

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more