torn_api_codegen/openapi/
schema.rs

1use indexmap::IndexMap;
2use serde::Deserialize;
3
4use super::{parameter::OpenApiParameter, path::OpenApiPath, r#type::OpenApiType};
5
6#[derive(Debug, Clone, Deserialize, PartialEq, Eq)]
7pub struct Components<'a> {
8    #[serde(borrow)]
9    pub schemas: IndexMap<&'a str, OpenApiType<'a>>,
10    #[serde(borrow)]
11    pub parameters: IndexMap<&'a str, OpenApiParameter<'a>>,
12}
13
14#[derive(Debug, Clone, Deserialize, PartialEq, Eq)]
15pub struct OpenApiSchema<'a> {
16    #[serde(borrow)]
17    pub paths: IndexMap<&'a str, OpenApiPath<'a>>,
18    #[serde(borrow)]
19    pub components: Components<'a>,
20}
21
22#[cfg(test)]
23pub(crate) mod test {
24    use super::*;
25
26    pub(crate) fn get_schema() -> OpenApiSchema<'static> {
27        let s = include_str!("../../../torn-api/openapi.json");
28        serde_json::from_str(s).unwrap()
29    }
30}