enceladuss 0.0.1

Enceladus celestial simulation crate for the MilkyWay SolarSystem workspace
Documentation
#[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 ali_baba() -> Crater {
    Crater {
        name: "Ali Baba",
        diameter_km: 35.0,
        depth_km: 1.2,
        age_gyr: 3.5,
    }
}

pub fn samarkand() -> Crater {
    Crater {
        name: "Samarkand",
        diameter_km: 30.0,
        depth_km: 0.9,
        age_gyr: 3.3,
    }
}

pub fn crater_class(diameter_km: f64) -> &'static str {
    if diameter_km < 10.0 {
        "simple"
    } else if diameter_km < 50.0 {
        "complex"
    } else {
        "multi-ring"
    }
}