use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SpawningCapabilities {
#[serde(default)]
pub can_spawn: bool,
#[serde(default = "default_max_children")]
pub max_children: u32,
#[serde(default = "default_max_depth")]
pub max_depth: u32,
#[serde(default)]
pub can_elevate: bool,
}
fn default_max_children() -> u32 {
3
}
fn default_max_depth() -> u32 {
2
}
impl Default for SpawningCapabilities {
fn default() -> Self {
Self {
can_spawn: false,
max_children: 3,
max_depth: 2,
can_elevate: false,
}
}
}
impl SpawningCapabilities {
pub fn disabled() -> Self {
Self {
can_spawn: false,
max_children: 0,
max_depth: 0,
can_elevate: false,
}
}
pub fn full() -> Self {
Self {
can_spawn: true,
max_children: 10,
max_depth: 5,
can_elevate: true,
}
}
}