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}