use crate::types::binary_dwarf::BinaryDwarf;
use crate::types::ceres_type::CeresType;
use crate::types::cold_classical::ColdClassical;
use crate::types::detached::Detached;
use crate::types::kuiper_belt::KuiperBelt;
use crate::types::plutino::Plutino;
use crate::types::scattered_disk::ScatteredDisk;
use crate::types::sednoid::Sednoid;
pub fn summary_kuiper_belt(body: &KuiperBelt) -> String {
format!(
"KuiperBelt | R={:.0} m | a={:.2} AU | e={:.3} | ρ={:.0} kg/m³",
body.radius, body.semi_major_axis, body.eccentricity, body.density
)
}
pub fn summary_scattered_disk(body: &ScatteredDisk) -> String {
format!(
"ScatteredDisk | R={:.0} m | a={:.2} AU | e={:.3} | q={:.2} AU",
body.radius,
body.semi_major_axis,
body.eccentricity,
body.semi_major_axis * (1.0 - body.eccentricity)
)
}
pub fn summary_plutino(body: &Plutino) -> String {
format!(
"Plutino | R={:.0} m | a={:.2} AU | e={:.3} | 2:3 resonance",
body.radius, body.semi_major_axis, body.eccentricity
)
}
pub fn summary_cold_classical(body: &ColdClassical) -> String {
format!(
"ColdClassical | R={:.0} m | a={:.2} AU | e={:.4} | i={:.2}°",
body.radius, body.semi_major_axis, body.eccentricity, body.inclination
)
}
pub fn summary_detached(body: &Detached) -> String {
format!(
"Detached | R={:.0} m | a={:.2} AU | e={:.3} | q={:.2} AU",
body.radius,
body.semi_major_axis,
body.eccentricity,
body.semi_major_axis * (1.0 - body.eccentricity)
)
}
pub fn summary_binary_dwarf(body: &BinaryDwarf) -> String {
format!(
"BinaryDwarf | R1={:.0} m | R2={:.0} m | a={:.2} AU | sep={:.0} m",
body.primary_radius, body.secondary_radius, body.semi_major_axis, body.mutual_separation
)
}
pub fn summary_ceres_type(body: &CeresType) -> String {
format!(
"CeresType | R={:.0} m | a={:.2} AU | e={:.4} | ice={:.1}%",
body.radius,
body.semi_major_axis,
body.eccentricity,
body.ice_mantle_fraction * 100.0
)
}
pub fn summary_sednoid(body: &Sednoid) -> String {
format!(
"Sednoid | R={:.0} m | a={:.1} AU | e={:.3} | q={:.1} AU",
body.radius,
body.semi_major_axis,
body.eccentricity,
body.semi_major_axis * (1.0 - body.eccentricity)
)
}