utomid_rs/
lib.rs

1//! # Utomid
2//!
3//! Utomid is a compact encoding for chemical elements and compounds.
4//! 
5//! ```
6//! use utomid_rs::{CompactCompound, compound_formula};
7//!
8//! let water = CompactCompound::new(vec![(1,2), (8,1)]); // H2O
9//! assert_eq!(water.formula(), "H2O");
10//! ```
11
12mod elements;
13mod compounds;
14
15pub use elements::{Element, ELEMENTS, get_element};
16pub use compounds::{CompactCompound, compound_mass, compound_formula};
17
18pub fn encode_utomid(number: u8) -> u8 {
19    if number < 1 || number > 118 {
20        panic!("Invalid atomic number: {}", number);
21    }
22    number
23}
24
25pub fn decode_utomid(id: u8) -> Option<&'static Element> {
26    get_element(id)
27}