Skip to content

mskvarc/cefact-units

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cefact-units

Crates.io Documentation License: MIT

UN/CEFACT Recommendation No. 20 — Codes for Units of Measure Used in International Trade (Revision 17, 2021).

All data is generated at compile time from rec20.xlsx and embedded as static data. No runtime allocations, no I/O.

Usage

[dependencies]
cefact-units = "0.1"
use cefact_units::UnitOfMeasure;

let kg = UnitOfMeasure::from_code("KGM").unwrap();
assert_eq!(kg.name(), "kilogram");
assert_eq!(kg.symbol(), Some("kg"));
assert_eq!(kg.quantity(), Some("mass"));

let parsed: UnitOfMeasure = "MTR".parse().unwrap();
assert_eq!(parsed.to_string(), "MTR");

for unit in UnitOfMeasure::ALL {
    println!("{} — {}", unit.code(), unit.name());
}

Features

  • serde — Serialize/deserialize UnitOfMeasure and UnitCode as strings
  • case-insensitive — Case-insensitive code parsing

Minimum Supported Rust Version

Rust 1.85 or later (edition 2024).

Data Attribution

Unit code data is derived from UN/CEFACT Recommendation No. 20 maintained by the United Nations Economic Commission for Europe (UNECE). The data is provided for public use under UNECE's open data policy.

License

MIT

About

Rust library for UN/CEFACT Recommendation No. 20 — Codes for Units of Measure Used in International Trade.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages