use std::fs;
use std::io;
use std::path::{Path, PathBuf};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct MetaSchemaAsset {
pub id: &'static str,
pub relative_path: &'static str,
pub source_url: &'static str,
}
mod assets_inner {
use super::MetaSchemaAsset;
include!("meta_schemas_assets.rs");
}
pub use assets_inner::*;
pub fn asset_by_path(path: &str) -> Option<&'static MetaSchemaAsset> {
ALL.iter().find(|asset| asset.relative_path == path)
}
pub fn manifest_dir() -> &'static Path {
Path::new(concat!(env!("CARGO_MANIFEST_DIR"), "/meta-schemas"))
}
pub fn resolve_path(asset: &MetaSchemaAsset) -> PathBuf {
manifest_dir().join(asset.relative_path)
}
pub fn read(asset: &MetaSchemaAsset) -> io::Result<String> {
fs::read_to_string(resolve_path(asset))
}