#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum FinalPlanRequirementMode {
Never,
#[default]
WorkflowReflection,
Always,
}
impl FinalPlanRequirementMode {
pub fn parse(s: &str) -> Result<Self, String> {
match s.trim().to_lowercase().as_str() {
"never" => Ok(Self::Never),
"workflow_reflection" => Ok(Self::WorkflowReflection),
"always" => Ok(Self::Always),
_ => Err(format!(
"未知 final_plan_requirement {:?},应为 never / workflow_reflection / always",
s.trim()
)),
}
}
}