print_periodic_table/
print_periodic_table.rs

1use mendeleev::{Element, Group, N_PERIODS};
2
3/// Prints a simple periodic table to stdout, with only the element symbols
4fn main() {
5    for period in 1..=N_PERIODS {
6        for group in Group::list() {
7            let element = Element::list()
8                .iter()
9                .find(|e| e.period() == period && e.group() == Some(*group));
10            match element {
11                Some(element) => print!("{:<4}", element.symbol()),
12                None => print!("    "),
13            }
14        }
15        println!();
16    }
17    println!();
18    for period in 6..=7 {
19        print!("        ");
20        for element in Element::list()
21            .iter()
22            .filter(|el| el.period() == period && el.group().is_none())
23        {
24            print!("{:<4}", element.symbol());
25        }
26        println!();
27    }
28}