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
Frames into pieces
Enums§
- KeyCode
- Represents a key.
- Mouse
Button - Represents a mouse button.