switchback_avro/
meta_schemas.rs1use std::fs;
5use std::io;
6use std::path::{Path, PathBuf};
7
8#[derive(Debug, Clone, Copy, PartialEq, Eq)]
10pub struct MetaSchemaAsset {
11 pub id: &'static str,
13 pub relative_path: &'static str,
15 pub source_url: &'static str,
17}
18
19mod assets_inner {
20 use super::MetaSchemaAsset;
21 include!("meta_schemas_assets.rs");
22}
23
24pub use assets_inner::*;
25
26pub fn asset_by_path(path: &str) -> Option<&'static MetaSchemaAsset> {
28 ALL.iter().find(|asset| asset.relative_path == path)
29}
30
31pub fn manifest_dir() -> &'static Path {
33 Path::new(concat!(env!("CARGO_MANIFEST_DIR"), "/meta-schemas"))
34}
35
36pub fn resolve_path(asset: &MetaSchemaAsset) -> PathBuf {
38 manifest_dir().join(asset.relative_path)
39}
40
41pub fn read(asset: &MetaSchemaAsset) -> io::Result<String> {
43 fs::read_to_string(resolve_path(asset))
44}