use llm_toolkit::ToPrompt;
#[derive(ToPrompt, Debug)]
pub enum UserIntent {
Greeting,
Help,
WeatherQuery,
SetReminder,
Farewell,
}
#[derive(ToPrompt, Debug)]
pub enum Priority {
Critical,
#[prompt("High priority - important but can wait a bit")]
High,
Medium,
Low,
#[prompt(skip)]
Deprecated, }
#[derive(ToPrompt, Debug)]
pub enum FeatureDemo {
WithDocComment,
#[prompt("This overrides any doc comment with a custom description")]
WithCustomDescription,
#[prompt(skip)]
SkippedVariant,
NoDescription,
}
fn main() {
println!("=== Instance-level prompts (single variant) ===\n");
let intent = UserIntent::Greeting;
println!("UserIntent::Greeting instance:");
println!("{}", intent.to_prompt());
println!();
let intent2 = UserIntent::Help;
println!("UserIntent::Help instance:");
println!("{}", intent2.to_prompt());
println!("\n---\n");
println!("=== Type-level schema (all variants) ===\n");
println!("UserIntent schema:");
println!("{}", UserIntent::prompt_schema());
println!("\n---\n");
println!("Priority schema (with custom description and skip):");
println!("{}", Priority::prompt_schema());
println!("\n---\n");
println!("FeatureDemo schema (showing all attribute features):");
println!("{}", FeatureDemo::prompt_schema());
}