torn_api_codegen/openapi/
schema.rs1use indexmap::IndexMap;
2use serde::Deserialize;
3
4use super::{parameter::OpenApiParameter, path::OpenApiPath, r#type::OpenApiType};
5
6#[derive(Debug, Clone, Deserialize)]
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)]
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
22impl OpenApiSchema<'_> {
23 pub fn read() -> Result<Self, serde_json::Error> {
24 let s = include_str!("../../openapi.json");
25
26 serde_json::from_str(s)
27 }
28}
29
30#[cfg(test)]
31mod test {
32 use super::*;
33
34 #[test]
35 fn read() {
36 OpenApiSchema::read().unwrap();
37 }
38}