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
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
impl<T: Write + Send> Terminal for TerminfoTerminal<T>
impl<T: Write + Send> Terminal for WinConsole<T>