torn_api_codegen/openapi/
parameter.rs1use std::borrow::Cow;
2
3use serde::Deserialize;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, Deserialize)]
6#[serde(rename_all = "lowercase")]
7pub enum ParameterLocation {
8 Query,
9 Path,
10}
11
12#[derive(Debug, Clone, Deserialize)]
13#[serde(untagged)]
14pub enum OpenApiParameterDefault<'a> {
15 Int(i32),
16 Str(&'a str),
17}
18
19#[derive(Debug, Clone, Deserialize)]
20pub struct OpenApiParameterSchema<'a> {
21 #[serde(rename = "$ref")]
22 pub ref_path: Option<&'a str>,
23 pub r#type: Option<&'a str>,
24 pub r#enum: Option<Vec<&'a str>>,
25 pub format: Option<&'a str>,
26 pub default: Option<OpenApiParameterDefault<'a>>,
27 pub maximum: Option<i32>,
28 pub minimum: Option<i32>,
29 pub items: Option<Box<OpenApiParameterSchema<'a>>>,
30}
31
32#[derive(Debug, Clone, Deserialize)]
33pub struct OpenApiParameter<'a> {
34 pub name: &'a str,
35 pub description: Option<Cow<'a, str>>,
36 pub r#in: ParameterLocation,
37 pub required: bool,
38 #[serde(borrow)]
39 pub schema: OpenApiParameterSchema<'a>,
40}