Logger

Struct Logger 

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

Logger for handling output with cargo-style progress and status messages.

All progress and status messages go to stderr (matching cargo’s behavior). This allows command output (badges, changelog, etc.) to be piped cleanly through stdout while progress messages appear on the console.

Implementations§

Source§

impl Logger

Source

pub fn new() -> Self

Create a new logger.

Source

pub fn progress(&mut self, message: &str)

Show a progress bar (ephemeral, disappears on finish).

Use this for operations with known progress. Always uses stderr (matching cargo’s behavior).

Source

pub fn set_progress_message(&self, message: &str)

Update the progress bar message.

Source

pub fn status(&mut self, action: &str, target: &str)

Print a status message in cargo’s style: “ Building crate-name“.

Uses cyan color for the action word (ephemeral operations). This creates an ephemeral message that will be cleared on finish(). Always goes to stderr (matching cargo’s behavior).

Source

pub fn status_permanent(&self, action: &str, target: &str)

Print a permanent status message in cargo’s style: “ Compiling crate-name“.

Uses green color for the action word (permanent operations). This message will NOT be cleared - use for operations that spawn subprocesses. Always goes to stderr (matching cargo’s behavior).

Source

pub fn print_message(&self, msg: &str)

Print a permanent message (will be kept in output).

Always goes to stderr (matching cargo’s behavior).

Source

pub fn info(&self, action: &str, target: &str)

Print an info message (cyan colored).

Info messages are permanent (not cleared). Always goes to stderr (matching cargo’s behavior).

Source

pub fn warning(&self, action: &str, target: &str)

Print a warning message (yellow colored).

Warning messages are permanent (not cleared). Always goes to stderr (matching cargo’s behavior).

Source

pub fn error(&self, action: &str, target: &str)

Print an error message (red colored).

Error messages are permanent (not cleared). Always goes to stderr (matching cargo’s behavior).

Source

pub fn clear_status(&mut self)

Clear the current status message immediately.

Useful before subprocess operations that might write to stderr.

Source

pub fn suspend<F, R>(&mut self, f: F) -> R
where F: FnOnce() -> R,

Temporarily suspend the status message (for subprocess output).

Call this before spawning subprocesses that write to stderr to avoid mixing their output with our status line.

Source

pub fn finish(&mut self)

Finish logging and clear ephemeral status messages.

Trait Implementations§

Source§

impl Default for Logger

Source§

fn default() -> Self

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

impl Drop for Logger

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl Freeze for Logger

§

impl RefUnwindSafe for Logger

§

impl Send for Logger

§

impl Sync for Logger

§

impl Unpin for Logger

§

impl UnwindSafe for Logger

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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
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, 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.