1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//! `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.
pub use ;
pub use Frame;
pub use ;
pub use Splitter;
)*};
}
pub use seal;