chemistru_elements/
utils.rs1use core::hint::black_box;
2
3use crate::{ELEMENTS, Element};
4
5#[must_use]
6pub fn element_from_atomic_number(n: u8) -> Option<&'static Element> {
7 ELEMENTS.get(n as usize - 1)
8}
9
10#[must_use]
11pub fn element_from_name(name: &str) -> Option<&'static Element> {
12 let name = {
13 let lowercase = name.to_lowercase();
14
15 match lowercase.as_str() {
16 "aluminum" => "aluminium",
17 "caesium" => "cesium",
18 "sulphur" => "sulfur",
19 _ => name,
20 }
21 };
22
23 ELEMENTS
24 .iter()
25 .find(|&n| n.name().to_lowercase() == name.to_lowercase())
26}
27
28pub fn preload_elements() {
32 let a = &ELEMENTS;
33 let b = a.first();
34 let c = b.expect("Elements vec is empty").clone();
35 let _d = black_box(c);
36}