#[derive(Debug, Clone, Copy)]
pub struct BindingEnergy {
pub isotope: &'static str,
pub mass_number: u32,
pub binding_energy_mev: f64,
pub binding_per_nucleon_mev: f64,
}
pub const TABLE: &[BindingEnergy] = &[
BindingEnergy { isotope: "H", mass_number: 1, binding_energy_mev: 0.0, binding_per_nucleon_mev: 0.000 },
BindingEnergy { isotope: "D", mass_number: 2, binding_energy_mev: 2.224, binding_per_nucleon_mev: 1.112 },
BindingEnergy { isotope: "T", mass_number: 3, binding_energy_mev: 8.482, binding_per_nucleon_mev: 2.827 },
BindingEnergy { isotope: "He", mass_number: 3, binding_energy_mev: 7.718, binding_per_nucleon_mev: 2.573 },
BindingEnergy { isotope: "He", mass_number: 4, binding_energy_mev: 28.296, binding_per_nucleon_mev: 7.074 },
BindingEnergy { isotope: "Li", mass_number: 6, binding_energy_mev: 31.994, binding_per_nucleon_mev: 5.332 },
BindingEnergy { isotope: "Li", mass_number: 7, binding_energy_mev: 39.245, binding_per_nucleon_mev: 5.606 },
BindingEnergy { isotope: "Be", mass_number: 9, binding_energy_mev: 58.165, binding_per_nucleon_mev: 6.463 },
BindingEnergy { isotope: "B", mass_number: 10, binding_energy_mev: 64.751, binding_per_nucleon_mev: 6.475 },
BindingEnergy { isotope: "B", mass_number: 11, binding_energy_mev: 76.205, binding_per_nucleon_mev: 6.928 },
BindingEnergy { isotope: "C", mass_number: 12, binding_energy_mev: 92.162, binding_per_nucleon_mev: 7.680 },
BindingEnergy { isotope: "C", mass_number: 13, binding_energy_mev: 97.108, binding_per_nucleon_mev: 7.470 },
BindingEnergy { isotope: "N", mass_number: 14, binding_energy_mev: 104.659, binding_per_nucleon_mev: 7.476 },
BindingEnergy { isotope: "N", mass_number: 15, binding_energy_mev: 115.492, binding_per_nucleon_mev: 7.699 },
BindingEnergy { isotope: "O", mass_number: 16, binding_energy_mev: 127.619, binding_per_nucleon_mev: 7.976 },
BindingEnergy { isotope: "O", mass_number: 18, binding_energy_mev: 139.807, binding_per_nucleon_mev: 7.767 },
BindingEnergy { isotope: "F", mass_number: 19, binding_energy_mev: 147.801, binding_per_nucleon_mev: 7.779 },
BindingEnergy { isotope: "Ne", mass_number: 20, binding_energy_mev: 160.645, binding_per_nucleon_mev: 8.032 },
BindingEnergy { isotope: "Na", mass_number: 23, binding_energy_mev: 186.564, binding_per_nucleon_mev: 8.111 },
BindingEnergy { isotope: "Mg", mass_number: 24, binding_energy_mev: 198.257, binding_per_nucleon_mev: 8.261 },
BindingEnergy { isotope: "Al", mass_number: 27, binding_energy_mev: 224.952, binding_per_nucleon_mev: 8.331 },
BindingEnergy { isotope: "Si", mass_number: 28, binding_energy_mev: 236.537, binding_per_nucleon_mev: 8.448 },
BindingEnergy { isotope: "P", mass_number: 31, binding_energy_mev: 262.917, binding_per_nucleon_mev: 8.481 },
BindingEnergy { isotope: "S", mass_number: 32, binding_energy_mev: 271.781, binding_per_nucleon_mev: 8.493 },
BindingEnergy { isotope: "Cl", mass_number: 35, binding_energy_mev: 298.210, binding_per_nucleon_mev: 8.520 },
BindingEnergy { isotope: "Ar", mass_number: 40, binding_energy_mev: 343.811, binding_per_nucleon_mev: 8.595 },
BindingEnergy { isotope: "Ca", mass_number: 40, binding_energy_mev: 342.052, binding_per_nucleon_mev: 8.551 },
BindingEnergy { isotope: "Ti", mass_number: 48, binding_energy_mev: 418.700, binding_per_nucleon_mev: 8.723 },
BindingEnergy { isotope: "Cr", mass_number: 52, binding_energy_mev: 456.349, binding_per_nucleon_mev: 8.776 },
BindingEnergy { isotope: "Mn", mass_number: 55, binding_energy_mev: 482.075, binding_per_nucleon_mev: 8.765 },
BindingEnergy { isotope: "Fe", mass_number: 56, binding_energy_mev: 492.254, binding_per_nucleon_mev: 8.790 },
BindingEnergy { isotope: "Fe", mass_number: 58, binding_energy_mev: 509.945, binding_per_nucleon_mev: 8.792 },
BindingEnergy { isotope: "Ni", mass_number: 62, binding_energy_mev: 545.259, binding_per_nucleon_mev: 8.795 },
BindingEnergy { isotope: "Ni", mass_number: 58, binding_energy_mev: 506.460, binding_per_nucleon_mev: 8.732 },
BindingEnergy { isotope: "Cu", mass_number: 63, binding_energy_mev: 551.382, binding_per_nucleon_mev: 8.752 },
BindingEnergy { isotope: "Zn", mass_number: 64, binding_energy_mev: 559.094, binding_per_nucleon_mev: 8.736 },
BindingEnergy { isotope: "Kr", mass_number: 84, binding_energy_mev: 732.257, binding_per_nucleon_mev: 8.717 },
BindingEnergy { isotope: "Mo", mass_number: 98, binding_energy_mev: 846.243, binding_per_nucleon_mev: 8.635 },
BindingEnergy { isotope: "Ag", mass_number: 107, binding_energy_mev: 915.265, binding_per_nucleon_mev: 8.554 },
BindingEnergy { isotope: "Sn", mass_number: 120, binding_energy_mev: 1020.546, binding_per_nucleon_mev: 8.505 },
BindingEnergy { isotope: "Xe", mass_number: 132, binding_energy_mev: 1112.448, binding_per_nucleon_mev: 8.428 },
BindingEnergy { isotope: "Ba", mass_number: 138, binding_energy_mev: 1158.297, binding_per_nucleon_mev: 8.393 },
BindingEnergy { isotope: "W", mass_number: 184, binding_energy_mev: 1472.935, binding_per_nucleon_mev: 8.005 },
BindingEnergy { isotope: "Au", mass_number: 197, binding_energy_mev: 1559.401, binding_per_nucleon_mev: 7.916 },
BindingEnergy { isotope: "Hg", mass_number: 202, binding_energy_mev: 1595.179, binding_per_nucleon_mev: 7.897 },
BindingEnergy { isotope: "Pb", mass_number: 208, binding_energy_mev: 1636.430, binding_per_nucleon_mev: 7.867 },
BindingEnergy { isotope: "Th", mass_number: 232, binding_energy_mev: 1766.703, binding_per_nucleon_mev: 7.615 },
BindingEnergy { isotope: "U", mass_number: 235, binding_energy_mev: 1783.870, binding_per_nucleon_mev: 7.591 },
BindingEnergy { isotope: "U", mass_number: 238, binding_energy_mev: 1801.694, binding_per_nucleon_mev: 7.570 },
BindingEnergy { isotope: "Pu", mass_number: 239, binding_energy_mev: 1806.921, binding_per_nucleon_mev: 7.560 },
BindingEnergy { isotope: "Pu", mass_number: 244, binding_energy_mev: 1836.054, binding_per_nucleon_mev: 7.525 },
];
pub fn by_isotope(isotope: &str, mass_number: u32) -> Option<&'static BindingEnergy> {
TABLE.iter().find(|b| b.isotope == isotope && b.mass_number == mass_number)
}