1pub fn symbol_to_atomic_number(symbol: &str) -> u64 {
3 match symbol {
4 "H" => 1,
5 "He" => 2,
6 "Li" => 3,
7 "Be" => 4,
8 "B" => 5,
9 "C" => 6,
10 "N" => 7,
11 "O" => 8,
12 "F" => 9,
13 "Ne" => 10,
14 "Na" => 11,
15 "Mg" => 12,
16 "Al" => 13,
17 "Si" => 14,
18 "P" => 15,
19 "S" => 16,
20 "Cl" => 17,
21 "Ar" => 18,
22 "K" => 19,
23 "Ca" => 20,
24 "Sc" => 21,
25 "Ti" => 22,
26 "V" => 23,
27 "Cr" => 24,
28 "Mn" => 25,
29 "Fe" => 26,
30 "Co" => 27,
31 "Ni" => 28,
32 "Cu" => 29,
33 "Zn" => 30,
34 "Ga" => 31,
35 "Ge" => 32,
36 "As" => 33,
37 "Se" => 34,
38 "Br" => 35,
39 "Kr" => 36,
40 "Rb" => 37,
41 "Sr" => 38,
42 "Y" => 39,
43 "Zr" => 40,
44 "Nb" => 41,
45 "Mo" => 42,
46 "Tc" => 43,
47 "Ru" => 44,
48 "Rh" => 45,
49 "Pd" => 46,
50 "Ag" => 47,
51 "Cd" => 48,
52 "In" => 49,
53 "Sn" => 50,
54 "Sb" => 51,
55 "Te" => 52,
56 "I" => 53,
57 "Xe" => 54,
58 "Cs" => 55,
59 "Ba" => 56,
60 "La" => 57,
61 "Ce" => 58,
62 "Pr" => 59,
63 "Nd" => 60,
64 "Pm" => 61,
65 "Sm" => 62,
66 "Eu" => 63,
67 "Gd" => 64,
68 "Tb" => 65,
69 "Dy" => 66,
70 "Ho" => 67,
71 "Er" => 68,
72 "Tm" => 69,
73 "Yb" => 70,
74 "Lu" => 71,
75 "Hf" => 72,
76 "Ta" => 73,
77 "W" => 74,
78 "Re" => 75,
79 "Os" => 76,
80 "Ir" => 77,
81 "Pt" => 78,
82 "Au" => 79,
83 "Hg" => 80,
84 "Tl" => 81,
85 "Pb" => 82,
86 "Bi" => 83,
87 "Po" => 84,
88 "At" => 85,
89 "Rn" => 86,
90 "Fr" => 87,
91 "Ra" => 88,
92 "Ac" => 89,
93 "Th" => 90,
94 "Pa" => 91,
95 "U" => 92,
96 _ => 0, }
98}
99
100pub fn atomic_number_to_symbol(atomic_number: u64) -> &'static str {
102 match atomic_number {
103 1 => "H",
104 2 => "He",
105 3 => "Li",
106 4 => "Be",
107 5 => "B",
108 6 => "C",
109 7 => "N",
110 8 => "O",
111 9 => "F",
112 10 => "Ne",
113 11 => "Na",
114 12 => "Mg",
115 13 => "Al",
116 14 => "Si",
117 15 => "P",
118 16 => "S",
119 17 => "Cl",
120 18 => "Ar",
121 19 => "K",
122 20 => "Ca",
123 21 => "Sc",
124 22 => "Ti",
125 23 => "V",
126 24 => "Cr",
127 25 => "Mn",
128 26 => "Fe",
129 27 => "Co",
130 28 => "Ni",
131 29 => "Cu",
132 30 => "Zn",
133 31 => "Ga",
134 32 => "Ge",
135 33 => "As",
136 34 => "Se",
137 35 => "Br",
138 36 => "Kr",
139 37 => "Rb",
140 38 => "Sr",
141 39 => "Y",
142 40 => "Zr",
143 41 => "Nb",
144 42 => "Mo",
145 43 => "Tc",
146 44 => "Ru",
147 45 => "Rh",
148 46 => "Pd",
149 47 => "Ag",
150 48 => "Cd",
151 49 => "In",
152 50 => "Sn",
153 51 => "Sb",
154 52 => "Te",
155 53 => "I",
156 54 => "Xe",
157 55 => "Cs",
158 56 => "Ba",
159 57 => "La",
160 58 => "Ce",
161 59 => "Pr",
162 60 => "Nd",
163 61 => "Pm",
164 62 => "Sm",
165 63 => "Eu",
166 64 => "Gd",
167 65 => "Tb",
168 66 => "Dy",
169 67 => "Ho",
170 68 => "Er",
171 69 => "Tm",
172 70 => "Yb",
173 71 => "Lu",
174 72 => "Hf",
175 73 => "Ta",
176 74 => "W",
177 75 => "Re",
178 76 => "Os",
179 77 => "Ir",
180 78 => "Pt",
181 79 => "Au",
182 80 => "Hg",
183 81 => "Tl",
184 82 => "Pb",
185 83 => "Bi",
186 84 => "Po",
187 85 => "At",
188 86 => "Rn",
189 87 => "Fr",
190 88 => "Ra",
191 89 => "Ac",
192 90 => "Th",
193 91 => "Pa",
194 92 => "U",
195 _ => "X", }
197}