use serde_derive::{Deserialize, Serialize};
use super::RefOr;
#[non_exhaustive]
#[derive(Serialize, Deserialize, Default, Clone, PartialEq, Eq, bon::Builder)]
#[cfg_attr(feature = "debug", derive(Debug))]
#[serde(rename_all = "camelCase")]
#[builder(on(_, into))]
pub struct Example {
#[serde(skip_serializing_if = "String::is_empty", default)]
pub summary: String,
#[serde(skip_serializing_if = "String::is_empty", default)]
pub description: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub value: Option<serde_json::Value>,
#[serde(skip_serializing_if = "String::is_empty", default)]
pub external_value: String,
}
impl Example {
pub fn new() -> Self {
Self::default()
}
}
impl<S: example_builder::IsComplete> From<ExampleBuilder<S>> for Example {
fn from(builder: ExampleBuilder<S>) -> Self {
builder.build()
}
}
impl<S: example_builder::IsComplete> From<ExampleBuilder<S>> for RefOr<Example> {
fn from(builder: ExampleBuilder<S>) -> Self {
Self::T(builder.build())
}
}