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
//! Resolved configuration types — the public API of `rmk-config`.
//!
//! These types represent the final, validated, defaults-applied output of the
//! 3-layer TOML merge (event defaults → chip defaults → user config).
//!
//! There are seven resolved entry points, each consumed at a different stage:
//!
//! - [`BuildConstants`] — compile-time constants emitted by `rmk-types/build.rs`
//! - [`Identity`] — keyboard identity for USB descriptors and BLE advertising
//! - [`Hardware`] — complete hardware config for proc-macro code generation
//! - [`Host`] — host-tool configuration such as Vial support
//! - [`Behavior`] — behavioral config (combos, macros, morse, forks, etc.)
//! - [`Keymap`] — keymap and encoder data for keymap generation
//! - [`Layout`] — the physical layout blob streamed over `GetLayout`
//!
//! Consumers call resolution methods on [`KeyboardTomlConfig`](crate::KeyboardTomlConfig):
//! - `.build_constants(active_features)` → `Result<BuildConstants, String>`
//! - `.identity()` → `Result<Identity, String>`
//! - `.hardware()` → `Result<Hardware, String>`
//! - `.host()` → `Host`
//! - `.behavior()` → `Result<Behavior, String>`
//! - `.keymap()` → `Result<Keymap, String>`
//! - `.layout()` → `Result<Layout, String>`
//!
//! Supporting types stay namespaced under their module to avoid flattening the
//! public API with overly generic names.
pub use Behavior;
pub use BuildConstants;
pub use Hardware;
pub use Host;
pub use Identity;
pub use Keymap;
pub use Layout;
// Re-export constants used by codegen
pub use crateKEYCODE_ALIAS;