#[derive(Debug, Clone, Copy, PartialEq)]
pub struct MineralDeposit {
pub name: &'static str,
pub area_km2: f64,
pub silicate_fraction: f64,
}
impl MineralDeposit {
pub fn silicate_mass_kg(&self, regolith_depth_m: f64, density_kg_m3: f64) -> f64 {
self.area_km2 * 1.0e6 * regolith_depth_m * density_kg_m3 * self.silicate_fraction
}
}
pub fn ocean_floor_minerals() -> MineralDeposit {
MineralDeposit {
name: "Ocean Floor Minerals",
area_km2: 300_000.0,
silicate_fraction: 0.35,
}
}