useserde::{Deserialize, Serialize};/// A schema for a plain text value.
////// # Example
////// ```
/// use llmprism::schema::StringSchema;
////// let city = StringSchema::new("city").with_description("The city to look up");
/// ```
#[derive(Debug, Clone, Serialize, Deserialize)]pubstructStringSchema{/// The field/parameter name this schema describes.
pubname: String,
/// A plain-language explanation of what this value represents, shown to the
/// model so it can fill it in correctly.
pubdescription:Option<String>,
}implStringSchema{/// Creates a schema for a string named `name`, with no description yet.
pubfnnew(name: impl Into<String>)->Self{Self{
name: name.into(),
description:None,}}/// Attaches a plain-language description, shown to the model.
pubfnwith_description(mutself, description: impl Into<String>)->Self{self.description =Some(description.into());self}}