///|
/// The name of the model used when `--model` is not given.
pub fn default_model_name() -> String {
"m3-max"
}
///|
/// The device profile used when `--model` is not given.
pub fn default_model() -> DeviceModel {
m3_max_model()
}
///|
/// All available device profiles, in the order they are listed in help.
pub fn all_models() -> Array[DeviceModel] {
[
m3_max_model(),
m3_ultra_model(),
m2_pro_model(),
m1_air_model(),
thinkpad_x1_model(),
thinkpad_t14s_model(),
fedora_desktop_model(),
debian_desktop_model(),
ryzen_desktop_model(),
omarchy_model(),
chromebook_model(),
alpine_server_model(),
gentoo_server_model(),
xiaomi_15_pro_model(),
rog_model(),
windows_desktop_model(),
]
}
///|
/// Look up a device profile by its `--model` name.
pub fn model_by_name(name : String) -> DeviceModel? {
all_models().iter().find_first(m => m.name == name)
}
///|
fn model_about() -> String {
let names = all_models().map(m => m.name).join(", ")
"device model: \{names} (default: \{default_model_name()})"
}