Struct cargo::core::shell::Shell

source ·
pub struct Shell {
    output: ShellOut,
    verbosity: Verbosity,
    needs_clear: bool,
}
Expand description

An abstraction around console output that remembers preferences for output verbosity and color.

Fields§

§output: ShellOut

Wrapper around stdout/stderr. This helps with supporting sending output to a memory buffer which is useful for tests.

§verbosity: Verbosity

How verbose messages should be.

§needs_clear: bool

Flag that indicates the current line needs to be cleared before printing. Used when a progress bar is currently displayed.

Implementations§

source§

impl Shell

source

pub fn new() -> Shell

Creates a new shell (color choice and verbosity), defaulting to ‘auto’ color and verbose output.

source

pub fn from_write(out: Box<dyn Write>) -> Shell

Creates a shell from a plain writable object, with no color, and max verbosity.

source

fn print( &mut self, status: &dyn Display, message: Option<&dyn Display>, color: &Style, justified: bool ) -> CargoResult<()>

Prints a message, where the status will have color color, and can be justified. The messages follows without color.

source

pub fn set_needs_clear(&mut self, needs_clear: bool)

Sets whether the next print should clear the current line.

source

pub fn is_cleared(&self) -> bool

Returns true if the needs_clear flag is unset.

source

pub fn err_width(&self) -> TtyWidth

Returns the width of the terminal in spaces, if any.

source

pub fn is_err_tty(&self) -> bool

Returns true if stderr is a tty.

source

pub fn out(&mut self) -> &mut dyn Write

Gets a reference to the underlying stdout writer.

source

pub fn err(&mut self) -> &mut dyn Write

Gets a reference to the underlying stderr writer.

source

pub fn err_erase_line(&mut self)

Erase from cursor to end of line.

source

pub fn status<T, U>(&mut self, status: T, message: U) -> CargoResult<()>where T: Display, U: Display,

Shortcut to right-align and color green a status message.

source

pub fn status_header<T>(&mut self, status: T) -> CargoResult<()>where T: Display,

source

pub fn status_with_color<T, U>( &mut self, status: T, message: U, color: &Style ) -> CargoResult<()>where T: Display, U: Display,

Shortcut to right-align a status message.

source

pub fn verbose<F>(&mut self, callback: F) -> CargoResult<()>where F: FnMut(&mut Shell) -> CargoResult<()>,

Runs the callback only if we are in verbose mode.

source

pub fn concise<F>(&mut self, callback: F) -> CargoResult<()>where F: FnMut(&mut Shell) -> CargoResult<()>,

Runs the callback if we are not in verbose mode.

source

pub fn error<T: Display>(&mut self, message: T) -> CargoResult<()>

Prints a red ‘error’ message.

source

pub fn warn<T: Display>(&mut self, message: T) -> CargoResult<()>

Prints an amber ‘warning’ message.

source

pub fn note<T: Display>(&mut self, message: T) -> CargoResult<()>

Prints a cyan ‘note’ message.

source

pub fn set_verbosity(&mut self, verbosity: Verbosity)

Updates the verbosity of the shell.

source

pub fn verbosity(&self) -> Verbosity

Gets the verbosity of the shell.

source

pub fn set_color_choice(&mut self, color: Option<&str>) -> CargoResult<()>

Updates the color choice (always, never, or auto) from a string..

source

pub fn color_choice(&self) -> ColorChoice

Gets the current color choice.

If we are not using a color stream, this will always return Never, even if the color choice has been set to something else.

source

pub fn err_supports_color(&self) -> bool

Whether the shell supports color.

source

pub fn out_supports_color(&self) -> bool

source

pub fn write_stdout( &mut self, fragment: impl Display, color: &Style ) -> CargoResult<()>

Write a styled fragment

Caller is responsible for deciding whether Shell::verbosity is affects output.

source

pub fn write_stderr( &mut self, fragment: impl Display, color: &Style ) -> CargoResult<()>

Write a styled fragment

Caller is responsible for deciding whether Shell::verbosity is affects output.

source

pub fn print_ansi_stderr(&mut self, message: &[u8]) -> CargoResult<()>

Prints a message to stderr and translates ANSI escape code into console colors.

source

pub fn print_ansi_stdout(&mut self, message: &[u8]) -> CargoResult<()>

Prints a message to stdout and translates ANSI escape code into console colors.

source

pub fn print_json<T: Serialize>(&mut self, obj: &T) -> CargoResult<()>

Trait Implementations§

source§

impl Debug for Shell

source§

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

Formats the value using the given formatter. Read more
source§

impl Default for Shell

source§

fn default() -> Self

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

impl ShellExt for Shell

source§

fn dirty_because(&mut self, unit: &Unit, s: impl Display) -> CargoResult<()>

Auto Trait Implementations§

§

impl !RefUnwindSafe for Shell

§

impl !Send for Shell

§

impl !Sync for Shell

§

impl Unpin for Shell

§

impl !UnwindSafe for Shell

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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<T> for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

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

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 64 bytes