torn_api_codegen/openapi/
parameter.rs

1use 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}