#[derive(Debug, Clone, Copy, PartialEq)]
pub struct Crater {
pub name: &'static str,
pub diameter_km: f64,
pub depth_km: f64,
pub age_gyr: f64,
}
impl Crater {
pub fn depth_to_diameter_ratio(&self) -> f64 {
self.depth_km / self.diameter_km
}
}
pub fn unnamed_crater_a() -> Crater {
Crater {
name: "Unnamed A",
diameter_km: 10.0,
depth_km: 0.3,
age_gyr: 0.001,
}
}
pub fn unnamed_crater_b() -> Crater {
Crater {
name: "Unnamed B",
diameter_km: 5.0,
depth_km: 0.1,
age_gyr: 0.0005,
}
}
pub fn crater_class(diameter_km: f64) -> &'static str {
if diameter_km < 15.0 {
"simple"
} else if diameter_km < 300.0 {
"complex"
} else {
"multi-ring"
}
}