use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
#[serde(rename_all = "lowercase")]
pub enum Effort {
Low,
Medium,
High,
Max,
#[default]
Auto,
}
impl Effort {
#[must_use]
pub fn as_openai(self) -> Option<&'static str> {
match self {
Self::Low => Some("low"),
Self::Medium => Some("medium"),
Self::High | Self::Max => Some("high"),
Self::Auto => None,
}
}
#[must_use]
pub fn as_anthropic_budget(self) -> Option<u32> {
match self {
Self::Low => Some(2_048),
Self::Medium => Some(8_192),
Self::High => Some(24_576),
Self::Max => Some(64_000),
Self::Auto => None,
}
}
}