tlq_ucum/
lib.rs

1#![forbid(unsafe_code)]
2
3mod ast;
4mod db;
5mod error;
6mod parser;
7mod quantity;
8mod unit;
9
10#[cfg(feature = "ucum-fhir")]
11pub mod fhir;
12
13use once_cell::sync::Lazy;
14
15pub use ast::{Atom, Term, UnitExpr};
16pub use error::{Error, Result};
17pub use parser::{parse, validate};
18pub use quantity::{normalize, Quantity, NormalizedQuantity};
19pub use unit::{
20    compare_decimal_quantities, convert_decimal, convertible, equivalent, DimensionVector, Unit,
21    UnitKind,
22};
23
24static UCUM_DB: Lazy<db::UcumDb> = Lazy::new(|| {
25    db::UcumDb::from_essence_xml(include_str!(
26        "../ucum-essence.xml"
27    ))
28    .expect("failed to load embedded ucum-essence.xml")
29});
30
31pub(crate) fn db() -> &'static db::UcumDb {
32    &UCUM_DB
33}