facade_particle/
facade_particle.rs1use use_physics::{Particle, ParticleFamily, ParticleKind, antiparticle, charge, spin};
2
3fn approx_eq(left: f64, right: f64) -> bool {
4 (left - right).abs() < 1.0e-12
5}
6
7fn main() {
8 let electron = Particle::new(ParticleKind::Electron);
9
10 assert_eq!(electron.family(), ParticleFamily::Lepton);
11 assert_eq!(charge(ParticleKind::Electron).thirds, -3);
12 assert_eq!(spin(ParticleKind::Photon).doubled, 2);
13 assert_eq!(
14 antiparticle(ParticleKind::Electron),
15 Some(ParticleKind::Positron)
16 );
17 assert!(approx_eq(electron.charge().as_elementary_units(), -1.0,));
18}