torn-api-codegen 0.8.1

Contains the v2 torn API model descriptions and codegen for the bindings
Documentation
use std::borrow::Cow;

use serde::Deserialize;

use super::r#type::OpenApiType;

#[derive(Debug, Clone, Copy, PartialEq, Eq, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum ParameterLocation {
    Query,
    Path,
}

#[derive(Debug, Clone, Deserialize, PartialEq, Eq)]
#[serde(untagged)]
pub enum OpenApiParameterDefault<'a> {
    Int(i32),
    Str(&'a str),
}

#[derive(Debug, Clone, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct OpenApiParameterSchema<'a> {
    #[serde(rename = "$ref")]
    pub ref_path: Option<&'a str>,
    pub r#type: Option<&'a str>,
    pub r#enum: Option<Vec<&'a str>>,
    pub format: Option<&'a str>,
    pub default: Option<OpenApiParameterDefault<'a>>,
    pub maximum: Option<i32>,
    pub minimum: Option<i32>,
    pub items: Option<Box<OpenApiParameterSchema<'a>>>,
    pub one_of: Option<Vec<OpenApiType<'a>>>,
}

#[derive(Debug, Clone, Deserialize, PartialEq, Eq)]
pub struct OpenApiParameter<'a> {
    pub name: &'a str,
    pub description: Option<Cow<'a, str>>,
    pub r#in: ParameterLocation,
    pub required: bool,
    #[serde(borrow)]
    pub schema: OpenApiParameterSchema<'a>,
}