use std::borrow::Cow; use serde::Deserialize; #[derive(Debug, Clone, Copy, PartialEq, Eq, Deserialize)] #[serde(rename_all = "lowercase")] pub enum ParameterLocation { Query, Path, } #[derive(Debug, Clone, Deserialize)] #[serde(untagged)] pub enum OpenApiParameterDefault<'a> { Int(i32), Str(&'a str), } #[derive(Debug, Clone, Deserialize)] pub struct OpenApiParameterSchema<'a> { #[serde(rename = "$ref")] pub ref_path: Option<&'a str>, pub r#type: Option<&'a str>, pub r#enum: Option>, pub format: Option<&'a str>, pub default: Option>, pub maximum: Option, pub minimum: Option, pub items: Option>>, } #[derive(Debug, Clone, Deserialize)] pub struct OpenApiParameter<'a> { pub name: &'a str, pub description: Option>, pub r#in: ParameterLocation, pub required: bool, #[serde(borrow)] pub schema: OpenApiParameterSchema<'a>, }