ogcapi_services/
openapi.rs1use std::{fs, path::Path, str::FromStr};
2
3#[doc(hidden)]
4pub static OPENAPI: &[u8; 29696] = include_bytes!("../assets/openapi/openapi.yaml");
5
6#[derive(Default, Clone)]
7pub struct OpenAPI(pub openapiv3::OpenAPI);
8
9impl FromStr for OpenAPI {
10 type Err = anyhow::Error;
11
12 fn from_str(s: &str) -> Result<Self, Self::Err> {
13 let openapi: openapiv3::OpenAPI = serde_yaml::from_str(s)?;
14 Ok(OpenAPI(openapi))
15 }
16}
17
18impl OpenAPI {
19 pub fn from_slice(api: &[u8]) -> Self {
20 let openapi: openapiv3::OpenAPI = serde_yaml::from_slice(api).unwrap();
21 OpenAPI(openapi)
22 }
23
24 pub fn from_path(path: &Path) -> anyhow::Result<OpenAPI> {
25 let api = fs::read_to_string(path)?;
26 OpenAPI::from_str(&api)
27 }
28}