# Trait termcolor::WriteColor

source · [−]

    pub trait WriteColor: Write {
        fn supports_color(&self) -> bool;
        fn set_color(&mut self, spec: &ColorSpec) -> Result<()>;
        fn reset(&mut self) -> Result<()>;

        fn is_synchronous(&self) -> bool { ... }
    }

Expand description

This trait describes the behavior of writers that support colored output.

## Required Methods

source

#### fn supports_color(&self) -> bool

Returns true if and only if the underlying writer supports colors.

source

#### fn set_color(&mut self, spec: &ColorSpec) -> Result<()>

Set the color settings of the writer.

Subsequent writes to this writer will use these settings until either `reset` is called or new color settings are set.

If there was a problem setting the color settings, then an error is returned.

source

#### fn reset(&mut self) -> Result<()>

Reset the current color settings to their original settings.

If there was a problem resetting the color settings, then an error is returned.

## Provided Methods

source

#### fn is_synchronous(&self) -> bool

Returns true if and only if the underlying writer must synchronously interact with an end user’s device in order to control colors. By default, this always returns `false`.

In practice, this should return `true` if the underlying writer is manipulating colors using the Windows console APIs.

This is useful for writing generic code (such as a buffered writer) that can perform certain optimizations when the underlying writer doesn’t rely on synchronous APIs. For example, ANSI escape sequences can be passed through to the end user’s device as is.

## Implementations on Foreign Types

source

### impl<'a, T: ?Sized + WriteColor> WriteColor for &'a mut T

source

#### fn supports_color(&self) -> bool

source

#### fn set_color(&mut self, spec: &ColorSpec) -> Result<()>

source

#### fn reset(&mut self) -> Result<()>

source

#### fn is_synchronous(&self) -> bool

source

### impl<T: ?Sized + WriteColor> WriteColor for Box<T>

source

#### fn supports_color(&self) -> bool

source

#### fn set_color(&mut self, spec: &ColorSpec) -> Result<()>

source

#### fn reset(&mut self) -> Result<()>

source

#### fn is_synchronous(&self) -> bool

source

### impl WriteColor for Sink

source

#### fn supports_color(&self) -> bool

source

#### fn set_color(&mut self, _: &ColorSpec) -> Result<()>

source

#### fn reset(&mut self) -> Result<()>

## Implementors

source

### impl WriteColor for Buffer

source

### impl WriteColor for BufferedStandardStream

source

### impl WriteColor for StandardStream

source

### impl<'a> WriteColor for StandardStreamLock<'a>

source

### impl<W: Write> WriteColor for Ansi<W>

source

### impl<W: Write> WriteColor for NoColor<W>