use llm_toolkit::{ToPrompt, examples_section};
use serde::Serialize;
#[derive(ToPrompt, Default, Serialize)]
#[prompt(mode = "full")]
struct User {
#[prompt(example = "user-12345")]
id: String,
#[prompt(example = "Taro Yamada")]
name: String,
#[serde(default)]
age: u8,
}
#[derive(ToPrompt, Default, Serialize)]
#[prompt(mode = "full")]
struct Concept {
#[prompt(example = "a cinematic, dynamic shot of a futuristic city at night")]
prompt: String,
#[serde(default)]
negative_prompt: Option<String>,
#[prompt(example = "anime")]
style: String,
}
fn main() {
let examples = examples_section!(User, Concept);
println!("{}", examples);
}