pub struct ModelConfig {
pub enable: Vec<String>,
pub presets: HashMap<String, Vec<String>>,
pub resolved_models: Vec<String>,
}
Expand description
Configuration for model selection and presets
§Examples
Basic usage from TOML config:
[models]
enable = [
"preset:programming",
"preset:reasoning@sonnet",
"google/gemini-2.0-flash-exp:free"
]
[models.presets]
programming = ["anthropic/claude-sonnet-4", "google/gemini-2.5-flash", "qwen/qwen3-coder"]
reasoning = ["anthropic/claude-sonnet-4", "google/gemini-2.5-pro", "deepseek/deepseek-r1:free"]
Fields§
§enable: Vec<String>
List of enabled models and presets
Supports three formats:
"model_id"
: Directly enable a specific model"preset:preset_name"
: Enable all models in a preset"preset:preset_name@filter"
: Enable models in preset matching filter
presets: HashMap<String, Vec<String>>
§resolved_models: Vec<String>
Resolved list of enabled model IDs (calculated at runtime)
Implementations§
Source§impl ModelConfig
impl ModelConfig
Sourcepub fn resolve(&mut self)
pub fn resolve(&mut self)
Resolves the final list of enabled models by processing presets
§Example
let mut config = ModelConfig {
enable: vec!["preset:programming".into()],
presets: {
let mut map = HashMap::new();
map.insert("programming".into(), vec!["anthropic/claude-sonnet-4".into()]);
map
},
..Default::default()
};
config.resolve();
assert!(config.is_enabled("anthropic/claude-sonnet-4"));
Sourcepub fn is_enabled(&self, model_id: &str) -> bool
pub fn is_enabled(&self, model_id: &str) -> bool
Checks if a specific model is enabled
§Example
let config = ModelConfig {
resolved_models: vec!["anthropic/claude-sonnet-4".into()],
..Default::default()
};
assert!(config.is_enabled("anthropic/claude-sonnet-4"));
assert!(!config.is_enabled("google/gemini-2.5-flash"));
Trait Implementations§
Source§impl Clone for ModelConfig
impl Clone for ModelConfig
Source§fn clone(&self) -> ModelConfig
fn clone(&self) -> ModelConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for ModelConfig
impl Debug for ModelConfig
Source§impl Default for ModelConfig
impl Default for ModelConfig
Source§fn default() -> ModelConfig
fn default() -> ModelConfig
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for ModelConfig
impl<'de> Deserialize<'de> for ModelConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ModelConfig
impl RefUnwindSafe for ModelConfig
impl Send for ModelConfig
impl Sync for ModelConfig
impl Unpin for ModelConfig
impl UnwindSafe for ModelConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more