zest-gui 0.1.1

Retained-mode GUI framework for embedded touchscreen MCUs. Re-exports zest-core, zest-theme, and zest-widget; optional simulator default platform.
Documentation
# zest-gui

`zest-gui` is the top-level convenience crate for the `zest` GUI framework family.

It re-exports:

- `zest-core`
- `zest-theme`
- `zest-widget`
- `zest-simulator` when the `simulator` feature is enabled

It also provides:

- a `prelude` module that pulls together the commonly used framework types
- a `time` re-export from `zest-core`
- an optional desktop `net` module
- `run::<A>(title)` as the default simulator entry point when the `simulator` feature is enabled

## Features

### `simulator`

Enables the default desktop runner by pulling in `zest-simulator`.

When this feature is enabled, applications can use:

```rust
zest_gui::run::<App>("My App").await;
```

### `net`

Enables the desktop async HTTP shim built on:

- `embassy-time`
- `reqwest`
- `serde`

The `net` module exists for desktop development; the source comments describe it as a compatibility layer that hides a blocking worker-thread implementation behind an async API.

## Prelude

The prelude re-exports framework types from the lower-level crates, including:

- application/runtime types from `zest-core`
- theme types from `zest-theme`
- concrete widgets from `zest-widget`
- common `embedded-graphics` geometry and color types

## Basic usage

```rust
use zest_gui::prelude::*;

struct App;
```

With the `simulator` feature enabled, the crate provides a ready-made desktop entry point:

```rust
#[embassy_executor::main]
async fn main(_spawner: embassy_executor::Spawner) {
    zest_gui::run::<App>("My App").await;
}
```

For custom hardware, construct your own `Platform` and call `Runtime::<A>::new().run(platform).await` directly.

## Package name and crate name

The package published to crates.io is `zest-gui`.

In Rust code, that package is imported as `zest_gui` unless the dependency is aliased in `Cargo.toml`.