espforge-options 0.6.0

a scaffolding++ tool for creating esp32 no_std esphal without the hassle
// AUTO-GENERATED BY BUILD.RS FROM espf.schema.kdl - DO NOT EDIT MANUALLY

//! The option half of `espf.schema.kdl` as Rust.
//!
//! `schema::embedded_schema` returns this table; a test asserts it equals
//! what `schema::load` parses from the embedded text, so the loader stays
//! the authority on what the schema means.

use crate::schema::{Compat, Kind, OptValue, OptionDef, Requires, Schema};

#[rustfmt::skip]
pub(crate) fn schema() -> Schema {
    Schema {
        required: vec!["chip".to_string()],
        options: vec![
            OptionDef {
                name: "unstable-hal".to_string(),
                display_name: Some("Enable unstable HAL features.".to_string()),
                help: Some("This configuration enables unstable esp-hal features. These come with no stability guarantees, and could be changed or removed at any time.".to_string()),
                kind: Kind::Bool,
                default: Some(OptValue::Bool(true)),
                requires: Requires {
                    options: Vec::new(),
                    tools: Vec::new(),
                    nightly: false,
                },
                compat: Compat { chips: None },
                selection_group: None,
                span: 13517..13760,
            },
            OptionDef {
                name: "alloc".to_string(),
                display_name: Some("Enable allocations via the esp-alloc crate.".to_string()),
                help: Some("esp-alloc comes with no stability guarantees at this time.".to_string()),
                kind: Kind::Bool,
                default: Some(OptValue::Bool(true)),
                requires: Requires {
                    options: Vec::new(),
                    tools: Vec::new(),
                    nightly: false,
                },
                compat: Compat { chips: None },
                selection_group: None,
                span: 13766..13935,
            },
            OptionDef {
                name: "wifi".to_string(),
                display_name: Some("Enable Wi-Fi via the esp-radio crate.".to_string()),
                help: Some("esp-radio comes with no stability guarantees at this time.".to_string()),
                kind: Kind::Bool,
                default: Some(OptValue::Bool(false)),
                requires: Requires {
                    options: vec!["alloc".to_string(), "unstable-hal".to_string(), "embassy".to_string()],
                    tools: Vec::new(),
                    nightly: false,
                },
                compat: Compat { chips: Some(vec!["esp32".to_string(), "esp32c2".to_string(), "esp32c3".to_string(), "esp32c5".to_string(), "esp32c6".to_string(), "esp32c61".to_string(), "esp32s2".to_string(), "esp32s3".to_string(), "esp32s31".to_string()]) },
                selection_group: None,
                span: 13941..14277,
            },
            OptionDef {
                name: "ble-trouble".to_string(),
                display_name: Some("Enable BLE via the esp-radio crate (embassy-trouble).".to_string()),
                help: Some("esp-radio comes with no stability guarantees at this time.".to_string()),
                kind: Kind::Bool,
                default: Some(OptValue::Bool(false)),
                requires: Requires {
                    options: vec!["alloc".to_string(), "unstable-hal".to_string(), "embassy".to_string()],
                    tools: Vec::new(),
                    nightly: false,
                },
                compat: Compat { chips: Some(vec!["esp32".to_string(), "esp32c2".to_string(), "esp32c3".to_string(), "esp32c5".to_string(), "esp32c6".to_string(), "esp32c61".to_string(), "esp32h2".to_string(), "esp32s3".to_string()]) },
                selection_group: None,
                span: 14283..14631,
            },
            OptionDef {
                name: "embassy".to_string(),
                display_name: Some("Add embassy framework support.".to_string()),
                help: Some("esp-rtos module responsible for embassy support comes with no stability guarantees at this time.".to_string()),
                kind: Kind::Bool,
                default: Some(OptValue::Bool(false)),
                requires: Requires {
                    options: vec!["unstable-hal".to_string()],
                    tools: Vec::new(),
                    nightly: false,
                },
                compat: Compat { chips: None },
                selection_group: Some("base-template".to_string()),
                span: 14637..14883,
            },
            OptionDef {
                name: "stack-smashing-protection".to_string(),
                display_name: Some("Enable stack smashing protection.".to_string()),
                help: Some("Requires nightly Rust. Note that this option generates additional checks in most functions and will slow down your code.".to_string()),
                kind: Kind::Bool,
                default: Some(OptValue::Bool(false)),
                requires: Requires {
                    options: Vec::new(),
                    tools: Vec::new(),
                    nightly: true,
                },
                compat: Compat { chips: None },
                selection_group: None,
                span: 14889..15139,
            },
            OptionDef {
                name: "probe-rs".to_string(),
                display_name: Some("Use probe-rs to flash and monitor instead of espflash.".to_string()),
                help: Some("probe-rs is a debugger that connects".to_string()),
                kind: Kind::Bool,
                default: Some(OptValue::Bool(false)),
                requires: Requires {
                    options: Vec::new(),
                    tools: vec!["probe-rs".to_string()],
                    nightly: false,
                },
                compat: Compat { chips: None },
                selection_group: None,
                span: 15145..15326,
            },
            OptionDef {
                name: "wokwi".to_string(),
                display_name: Some("Generate Wokwi simulation files.".to_string()),
                help: Some("Writes diagram.json and wokwi.toml so the project can be simulated in Wokwi.".to_string()),
                kind: Kind::Bool,
                default: Some(OptValue::Bool(true)),
                requires: Requires {
                    options: Vec::new(),
                    tools: Vec::new(),
                    nightly: false,
                },
                compat: Compat { chips: None },
                selection_group: None,
                span: 15399..15575,
            },
            OptionDef {
                name: "keep-zig-source".to_string(),
                display_name: Some("Keep the Zig source of custom Wokwi chips.".to_string()),
                help: Some("Copies the example's chip/ directory (Zig sources and build files) into the project. chip.json and chip.wasm are always copied.".to_string()),
                kind: Kind::Bool,
                default: Some(OptValue::Bool(false)),
                requires: Requires {
                    options: Vec::new(),
                    tools: Vec::new(),
                    nightly: false,
                },
                compat: Compat { chips: None },
                selection_group: None,
                span: 15720..15953,
            },
        ],
    }
}