planetsfactory 0.0.1

Planet factory — classify, build and catalogue planets for any star system: Solar System, TRAPPIST-1, Kepler-90, Proxima Centauri, or fully custom worlds.
Documentation
use crate::engine::generator::GeneratedPlanet;
use crate::types::gas_giant::GasGiant;
use crate::types::ice_giant::IceGiant;
use crate::types::terrestrial::TerrestrialPlanet;

pub fn mercury() -> TerrestrialPlanet {
    TerrestrialPlanet::mercury()
}

pub fn venus() -> TerrestrialPlanet {
    TerrestrialPlanet::venus()
}

pub fn earth() -> TerrestrialPlanet {
    TerrestrialPlanet::earth()
}

pub fn mars() -> TerrestrialPlanet {
    TerrestrialPlanet::mars()
}

pub fn jupiter() -> GasGiant {
    GasGiant::jupiter()
}

pub fn saturn() -> GasGiant {
    GasGiant::saturn()
}

pub fn uranus() -> IceGiant {
    IceGiant::uranus()
}

pub fn neptune() -> IceGiant {
    IceGiant::neptune()
}

pub fn all() -> Vec<GeneratedPlanet> {
    vec![
        GeneratedPlanet::Terrestrial(mercury()),
        GeneratedPlanet::Terrestrial(venus()),
        GeneratedPlanet::Terrestrial(earth()),
        GeneratedPlanet::Terrestrial(mars()),
        GeneratedPlanet::GasGiant(jupiter()),
        GeneratedPlanet::GasGiant(saturn()),
        GeneratedPlanet::IceGiant(uranus()),
        GeneratedPlanet::IceGiant(neptune()),
    ]
}

pub fn inner() -> Vec<GeneratedPlanet> {
    vec![
        GeneratedPlanet::Terrestrial(mercury()),
        GeneratedPlanet::Terrestrial(venus()),
        GeneratedPlanet::Terrestrial(earth()),
        GeneratedPlanet::Terrestrial(mars()),
    ]
}

pub fn outer() -> Vec<GeneratedPlanet> {
    vec![
        GeneratedPlanet::GasGiant(jupiter()),
        GeneratedPlanet::GasGiant(saturn()),
        GeneratedPlanet::IceGiant(uranus()),
        GeneratedPlanet::IceGiant(neptune()),
    ]
}