use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
#[serde(rename_all = "lowercase")]
pub enum LlmMode {
#[default]
Allowed,
Off,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
pub struct LlmEntitlement {
#[serde(default)]
pub mode: LlmMode,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn default_mode_is_allowed() {
let e: LlmEntitlement = serde_yaml_ng::from_str("{}").unwrap();
assert_eq!(e.mode, LlmMode::Allowed);
}
#[test]
fn mode_off_round_trips() {
let e = LlmEntitlement { mode: LlmMode::Off };
let s = serde_yaml_ng::to_string(&e).unwrap();
assert!(s.contains("mode: off"));
assert_eq!(serde_yaml_ng::from_str::<LlmEntitlement>(&s).unwrap(), e);
}
}