#![warn(clippy::all, clippy::pedantic, clippy::cargo)]
#![allow(
clippy::multiple_crate_versions,
clippy::module_name_repetitions,
clippy::wildcard_imports
)]
#![forbid(unsafe_code)]
pub mod catalogs;
pub mod generated;
mod impls;
pub mod primitives;
pub use generated::types::Catalog;
pub use primitives::{MarkupLine, MarkupMultiline, UriReference};
pub fn load_catalog(name: &str) -> Result<Catalog, String> {
let json = catalogs::embedded_catalog_json(name)
.ok_or_else(|| format!("unknown embedded catalog '{name}'"))?;
let doc: CatalogDoc =
serde_json::from_str(json).map_err(|e| format!("catalog parse error: {e}"))?;
Ok(doc.catalog)
}
#[derive(serde::Deserialize)]
struct CatalogDoc {
catalog: Catalog,
}