Expand description
fatui
is a textmode ui interface library that aims to be
flexible, cell-perfect, immediate-mode.
you’ll start by finding a Backend
,
which represents the actual input and output system –
ansi terminals, graphical renderers, whatever.
you usually want open
– that’ll pick “the right one”,
based on the features you have configured and the runtime environment.
from there you’ll call Backend::step
to get a Frame
,
which represents the input state and lets you render the output.
notably: none of the operations on it actually do any i/o –
they’re purely in memory, which makes it quite quick to work with.
the actual input and output are all contained in the step
function.
once you have a frame, you can do two major things with it:
- [
Frame::split
] splits up the frame into multiple non-overlapping regions, each of which can itself be treated like a frame, say by splitting it even further - [
Frame::render
] renders a component into a frame, processing some input and returning some output
for details about the builtin functionality, check
the split
and [component
] module docs.
Re-exports§
pub use backend::Backend;
pub use backend::open;
pub use frame::Frame;
pub use input::Event;
pub use input::InputState;
pub use input::StateEvent;
pub use split::Splitter;
Modules§
- backend
- the bridge to the actual os input/output
- frame
- a frame of input and output
- grid
- a generic grid of things
- input
- inputs from i/o
- output
- outputs to i/o.
- pos
- utilities and types for tracking and calculating with locations
- split
- split
Frame
s into pieces
Enums§
- KeyCode
- Represents a key.
- Mouse
Button - Represents a mouse button.