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,
},
],
}
}