oxide_gui_core/lib.rs
1//! oxide-gui-core — no_std portable GUI core.
2//!
3//! # Architecture
4//!
5//! ```text
6//! Your app
7//! │
8//! ▼
9//! Canvas<B> ← drawing helper; owns a &mut B
10//! │ uses
11//! ▼
12//! Backend (trait) ← fill_rect / present / poll_event
13//! │ implemented by
14//! ├─ oxide-gui-linux :: MinifbBackend (std, X11/Wayland via minifb)
15//! └─ oxide-gui-oxideos :: KernelBackend (no_std, OxideOS framebuffer)
16//! ```
17//!
18//! `oxide-gui-core` itself has **zero dependencies** and is `no_std` compatible.
19//! Enable the `alloc` feature if your environment has a heap.
20
21#![no_std]
22
23pub mod color;
24pub mod event;
25pub mod backend;
26pub mod font;
27pub mod canvas;
28
29pub use color::Color;
30pub use event::{Event, Key, MouseButton};
31pub use backend::Backend;
32pub use canvas::Canvas;