use anyhow::Result;
use rig_dyn::Provider;
use serde_plain::{from_str, to_string};
fn main() -> Result<()> {
let provider = Provider::OpenAI;
let serialized = to_string(&provider)?;
println!("Serialized: {}", serialized);
let deserialized: Provider = from_str("openai")?;
assert_eq!(deserialized, Provider::OpenAI);
let from_alias: Provider = from_str("openai-compatible")?;
assert_eq!(from_alias, Provider::OpenAI);
let from_string = Provider::try_from("anthropic".to_string())?;
assert_eq!(from_string, Provider::Anthropic);
Ok(())
}