Trait term::Terminal [] [src]

pub trait Terminal: Write {
    type Output: Write;
    fn fg(&mut self, color: Color) -> Result<bool>;
    fn bg(&mut self, color: Color) -> Result<bool>;
    fn attr(&mut self, attr: Attr) -> Result<bool>;
    fn supports_attr(&self, attr: Attr) -> bool;
    fn reset(&mut self) -> Result<bool>;
    fn cursor_up(&mut self) -> Result<bool>;
    fn delete_line(&mut self) -> Result<bool>;
    fn carriage_return(&mut self) -> Result<bool>;
    fn get_ref<'a>(&'a self) -> &'a Self::Output;
    fn get_mut<'a>(&'a mut self) -> &'a mut Self::Output;
    fn into_inner(self) -> Self::Output where Self: Sized;
}

A terminal with similar capabilities to an ANSI Terminal (foreground/background colors etc).

Associated Types

type Output: Write

The terminal's output writer type.

Required Methods

fn fg(&mut self, color: Color) -> Result<bool>

Sets the foreground color to the given color.

If the color is a bright color, but the terminal only supports 8 colors, the corresponding normal color will be used instead.

Returns Ok(true) if the color was set, Ok(false) otherwise, and Err(e) if there was an I/O error.

fn bg(&mut self, color: Color) -> Result<bool>

Sets the background color to the given color.

If the color is a bright color, but the terminal only supports 8 colors, the corresponding normal color will be used instead.

Returns Ok(true) if the color was set, Ok(false) otherwise, and Err(e) if there was an I/O error.

fn attr(&mut self, attr: Attr) -> Result<bool>

Sets the given terminal attribute, if supported. Returns Ok(true) if the attribute was supported, Ok(false) otherwise, and Err(e) if there was an I/O error.

fn supports_attr(&self, attr: Attr) -> bool

Returns whether the given terminal attribute is supported.

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

Resets all terminal attributes and colors to their defaults.

Returns Ok(true) if the terminal was reset, Ok(false) otherwise, and Err(e) if there was an I/O error.

Note: This does not flush.

That means the reset command may get buffered so, if you aren't planning on doing anything else that might flush stdout's buffer (e.g. writing a line of text), you should flush after calling reset.

fn cursor_up(&mut self) -> Result<bool>

Moves the cursor up one line.

Returns Ok(true) if the cursor was moved, Ok(false) otherwise, and Err(e) if there was an I/O error.

fn delete_line(&mut self) -> Result<bool>

Deletes the text from the cursor location to the end of the line.

Returns Ok(true) if the text was deleted, Ok(false) otherwise, and Err(e) if there was an I/O error.

fn carriage_return(&mut self) -> Result<bool>

Moves the cursor to the left edge of the current line.

Returns Ok(true) if the text was deleted, Ok(false) otherwise, and Err(e) if there was an I/O error.

fn get_ref<'a>(&'a self) -> &'a Self::Output

Gets an immutable reference to the stream inside

fn get_mut<'a>(&'a mut self) -> &'a mut Self::Output

Gets a mutable reference to the stream inside

fn into_inner(self) -> Self::Output where Self: Sized

Returns the contained stream, destroying the Terminal

Implementors