mirror of
https://codeberg.org/unspeaker/tengri.git
synced 2025-12-06 19:56:44 +01:00
20 lines
844 B
Markdown
20 lines
844 B
Markdown
***tengri_output*** is an abstract interface layout framework.
|
|
|
|
it expresses the following notions:
|
|
|
|
* [**space:**](./src/space.rs) `Direction`, `Coordinate`, `Area`, `Size`, `Measure`
|
|
|
|
* [**output:**](./src/output.rs) `Out`, `Draw`, `Content`
|
|
* the layout operators are generic over `Draw` and/or `Content`
|
|
* the traits `Draw` and `Content` are generic over `Out`
|
|
* implement `Out` to bring a layout to a new backend:
|
|
[see `TuiOut` in `tengri_tui`](../tui/src/tui_engine/tui_output.rs)
|
|
|
|
* [**layout:**](./src/layout.rs)
|
|
* conditionals: `When`, `Either`
|
|
* iteration: `Map`
|
|
* concatenation: `Bsp`
|
|
* positioning: `Align`, `Push`, `Pull`
|
|
* sizing: `Fill`, `Fixed`, `Expand`, `Shrink`, `Min`, `Max`
|
|
* implement custom components (that may be backend-dependent):
|
|
[see `tui_content` in `tengri_tui`](../tui/src/tui_content)
|