Skip to main content

use_chemistry/
lib.rs

1#![forbid(unsafe_code)]
2#![doc = include_str!("../README.md")]
3
4pub use use_atomic_mass;
5pub use use_atomic_number;
6pub use use_electron_shell;
7pub use use_element;
8pub use use_periodic_table;
9
10pub mod prelude;
11
12#[cfg(test)]
13mod tests {
14    use super::prelude::{
15        atomic_mass_by_symbol, atomic_number_from_symbol, electron_shells, element_by_symbol,
16        period_for_atomic_number,
17    };
18
19    #[test]
20    fn facade_exposes_focused_crates() {
21        let oxygen = element_by_symbol("O").expect("oxygen should exist");
22
23        assert_eq!(oxygen.atomic_number, 8);
24        assert_eq!(atomic_number_from_symbol("Na"), Some(11));
25        assert!((atomic_mass_by_symbol("O").unwrap_or_default() - 15.999).abs() < 0.01);
26        assert_eq!(electron_shells(11), Some(vec![2, 8, 1]));
27        assert_eq!(period_for_atomic_number(11), Some(3));
28    }
29}