openapiv3_1/
external_docs.rs1use serde_derive::{Deserialize, Serialize};
5
6use super::extensions::Extensions;
7
8#[non_exhaustive]
10#[derive(Serialize, Deserialize, Default, Clone, PartialEq, Eq, bon::Builder)]
11#[cfg_attr(feature = "debug", derive(Debug))]
12#[serde(rename_all = "camelCase")]
13#[builder(on(_, into))]
14pub struct ExternalDocs {
15 pub url: String,
17 #[serde(default)]
19 pub description: Option<String>,
20
21 #[serde(skip_serializing_if = "Option::is_none", flatten, default)]
23 pub extensions: Option<Extensions>,
24}
25
26impl ExternalDocs {
27 pub fn new<S: AsRef<str>>(url: S) -> Self {
38 Self {
39 url: url.as_ref().to_string(),
40 ..Default::default()
41 }
42 }
43}
44
45impl<S: external_docs_builder::IsComplete> From<ExternalDocsBuilder<S>> for ExternalDocs {
46 fn from(builder: ExternalDocsBuilder<S>) -> Self {
47 builder.build()
48 }
49}