Trait Backend

Source
pub trait Backend {
Show 13 methods // Required methods fn poll_event(&mut self) -> Option<Event>; fn set_title(&mut self, title: String); fn refresh(&mut self); fn has_colors(&self) -> bool; fn screen_size(&self) -> XY<usize>; fn move_to(&self, pos: XY<usize>); fn print(&self, text: &str); fn clear(&self, color: Color); fn set_color(&self, colors: ColorPair) -> ColorPair; fn set_effect(&self, effect: Effect); fn unset_effect(&self, effect: Effect); // Provided methods fn is_persistent(&self) -> bool { ... } fn name(&self) -> &str { ... }
}
Expand description

Trait defining the required methods to be a backend.

A backend is the interface between the abstract view tree and the actual input/output, like a terminal.

It usually delegates the work to a terminal-handling library like ncurses or termion, or it can entirely simulate a terminal and show it as a graphical window (BearLibTerminal).

When creating a new cursive tree with Cursive::new(), you will need to provide a backend initializer - usually their init() function.

Backends are responsible for handling input and converting it to Event. Input must be non-blocking, it will be polled regularly.

Required Methods§

Source

fn poll_event(&mut self) -> Option<Event>

Polls the backend for any input.

Should return immediately:

  • None if no event is currently available.
  • Some(event) for each event to process.
Source

fn set_title(&mut self, title: String)

Sets the title for the backend.

This usually sets the terminal window title.

Source

fn refresh(&mut self)

Refresh the screen.

This will be called each frame after drawing has been done.

A backend could, for example, buffer any print command, and apply everything when refresh() is called.

Source

fn has_colors(&self) -> bool

Should return true if this backend supports colors.

Source

fn screen_size(&self) -> XY<usize>

Returns the screen size.

Source

fn move_to(&self, pos: XY<usize>)

Move the cursor to the given cell.

The next call to print() will start at this place.

Source

fn print(&self, text: &str)

Print some text at the current cursor.

The cursor will then be moved past the end of the printed text.

Source

fn clear(&self, color: Color)

Clears the screen with the given color.

Source

fn set_color(&self, colors: ColorPair) -> ColorPair

Starts using a new color.

This should return the previously active color.

Any call to print_at from now on should use the given color.

Source

fn set_effect(&self, effect: Effect)

Enables the given effect.

Any call to print_at from now on should use the given effect.

Source

fn unset_effect(&self, effect: Effect)

Disables the given effect.

Provided Methods§

Source

fn is_persistent(&self) -> bool

Returns true if the backend has persistent output.

If true, this means that output stays there between calls to refresh(), so only delta needs to be sent.

Source

fn name(&self) -> &str

Returns a name to identify the backend.

Mostly used for debugging.

Implementors§

Source§

impl Backend for cursive::backends::crossterm::Backend

Available on crate feature crossterm-backend only.
Source§

impl Backend for cursive::backends::curses::pan::Backend

Available on crate feature pancurses-backend only.
Source§

impl Backend for cursive::backends::puppet::Backend

Source§

impl Backend for cursive::backends::termion::Backend

Available on crate feature termion-backend only.
Source§

impl Backend for Dummy