use serde::{Serialize};
const SWAGGER_STANDALONE_LAYOUT: &str = "StandaloneLayout";
#[non_exhaustive]
#[derive(Serialize, Clone, Debug)]
#[serde(rename_all = "camelCase")]
pub struct Config {
#[serde(skip_serializing_if = "Option::is_none")]
pub config_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(rename = "dom_id")]
pub dom_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", rename = "urls.primaryName")]
pub urls_primary_name: Option<String>,
#[serde(skip_serializing_if = "Vec::is_empty")]
pub urls: Vec<Url>,
#[serde(skip_serializing_if = "Option::is_none")]
pub query_config_enabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub deep_linking: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub display_operation_id: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default_models_expand_depth: Option<isize>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default_model_expand_depth: Option<isize>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default_model_rendering: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub display_request_duration: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub doc_expansion: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_displayed_tags: Option<usize>,
#[serde(skip_serializing_if = "Option::is_none")]
pub show_extensions: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub show_common_extensions: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub try_it_out_enabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub request_snippets_enabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub oauth2_redirect_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub show_mutated_request: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub supported_submit_methods: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub validator_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub with_credentials: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub persist_authorization: Option<bool>,
pub layout: String,
}
impl Config {
pub fn url<U: Into<Url>>(&mut self, u: U) -> &mut Self {
self.urls.push(u.into());
self
}
}
impl Default for Config {
fn default() -> Self {
Self {
config_url: Default::default(),
dom_id: Some("#swagger-ui".to_string()),
url: Default::default(),
urls_primary_name: Default::default(),
urls: Default::default(),
query_config_enabled: Default::default(),
deep_linking: Some(true),
display_operation_id: Default::default(),
default_models_expand_depth: Default::default(),
default_model_expand_depth: Default::default(),
default_model_rendering: Default::default(),
display_request_duration: Default::default(),
doc_expansion: Default::default(),
filter: Default::default(),
max_displayed_tags: Default::default(),
show_extensions: Default::default(),
show_common_extensions: Default::default(),
try_it_out_enabled: Default::default(),
request_snippets_enabled: Default::default(),
oauth2_redirect_url: Default::default(),
show_mutated_request: Default::default(),
supported_submit_methods: Default::default(),
validator_url: Default::default(),
with_credentials: Default::default(),
persist_authorization: Default::default(),
layout: SWAGGER_STANDALONE_LAYOUT.to_string(),
}
}
}
#[non_exhaustive]
#[derive(Default, Serialize, Clone, Debug)]
pub struct Url {
name: String,
url: String,
#[serde(skip)]
#[allow(dead_code)]
primary: bool,
}
impl From<&str> for Url {
fn from(url: &str) -> Self {
Self {
url: url.to_string(),
..Default::default()
}
}
}
impl From<String> for Url {
fn from(url: String) -> Self {
Self {
url,
..Default::default()
}
}
}
impl From<&String> for Url {
fn from(url: &String) -> Self {
Self {
url: url.clone(),
..Default::default()
}
}
}