loeres_device/lib.rs
1//! `loeres-device` — deterministic edge-side solver entrypoints.
2//!
3//! Environment: `#![no_std]`, no `alloc`. Optimizes for bounded iteration,
4//! fixed memory, small binaries, and analyzable, panic-averse solve paths.
5//! Depends on `loeres` and `loeres-backend-static` only — never on
6//! `loeres-cluster`, `loeres-backend-std`, async runtimes, threads, logging,
7//! or FFI gateways.
8//!
9//! Public module topography (external design §1.5):
10//! `problem`, `solve`, `config`, `workspace`, `diagnostic`.
11//!
12//! Milestone 2 / RFC 005: `config` (runtime `DeviceSolveConfig` / `TimingMode`
13//! policy and structural validation) and `workspace` (the caller-owned
14//! `DeviceWorkspace` / `DeviceWorkspaceDiagnostic` / `WorkspaceFor` lifecycle
15//! contracts) are implemented. `problem`, `solve`, and the concrete solver
16//! workspaces, report types, and kernel remain RFC 006-owned placeholders.
17#![cfg_attr(not(test), no_std)]
18#![forbid(unsafe_code)]
19
20pub mod config;
21pub mod diagnostic;
22pub mod problem;
23pub mod solve;
24pub mod workspace;