#[derive(Clone, Debug)]
pub struct MultiAgentConfig {
pub enabled: bool,
pub max_sub_agents: usize,
pub max_agent_depth: i32,
}
impl Default for MultiAgentConfig {
fn default() -> Self {
Self {
enabled: true,
max_sub_agents: 8,
max_agent_depth: 1,
}
}
}
impl MultiAgentConfig {
pub fn enabled() -> Self {
Self {
enabled: true,
..Default::default()
}
}
pub fn with_limits(max_sub_agents: usize, max_agent_depth: i32) -> Self {
Self {
enabled: true,
max_sub_agents,
max_agent_depth,
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn default_is_enabled() {
let config = MultiAgentConfig::default();
assert!(config.enabled);
assert_eq!(config.max_sub_agents, 8);
assert_eq!(config.max_agent_depth, 1);
}
#[test]
fn enabled_shortcut() {
let config = MultiAgentConfig::enabled();
assert!(config.enabled);
assert_eq!(config.max_sub_agents, 8);
assert_eq!(config.max_agent_depth, 1);
}
#[test]
fn with_limits() {
let config = MultiAgentConfig::with_limits(4, 2);
assert!(config.enabled);
assert_eq!(config.max_sub_agents, 4);
assert_eq!(config.max_agent_depth, 2);
}
}