#[derive(Debug, Clone)]
pub struct OpenApiConfig {
pub title: String,
pub version: String,
pub description: Option<String>,
pub json_path: String,
pub docs_path: String,
}
impl Default for OpenApiConfig {
fn default() -> Self {
Self {
title: "RustAPI Application".to_string(),
version: "1.0.0".to_string(),
description: None,
json_path: "/openapi.json".to_string(),
docs_path: "/docs".to_string(),
}
}
}
impl OpenApiConfig {
pub fn new(title: impl Into<String>, version: impl Into<String>) -> Self {
Self {
title: title.into(),
version: version.into(),
..Default::default()
}
}
pub fn description(mut self, description: impl Into<String>) -> Self {
self.description = Some(description.into());
self
}
pub fn json_path(mut self, path: impl Into<String>) -> Self {
self.json_path = path.into();
self
}
pub fn docs_path(mut self, path: impl Into<String>) -> Self {
self.docs_path = path.into();
self
}
}