use crate::astro::orbit::Orbit;
use qtty::{Kilograms, Kilometers};
use std::borrow::Cow;
#[derive(Clone, Debug)]
pub struct Satellite<'a> {
pub name: Cow<'a, str>,
pub mass: Kilograms,
pub radius: Kilometers,
pub orbit: Orbit,
}
impl<'a> Satellite<'a> {
pub const fn new_const(
name: &'static str,
mass: Kilograms,
radius: Kilometers,
orbit: Orbit,
) -> Satellite<'static> {
Satellite {
name: Cow::Borrowed(name),
mass,
radius,
orbit,
}
}
pub fn new<N>(name: N, mass: Kilograms, radius: Kilometers, orbit: Orbit) -> Satellite<'a>
where
N: Into<Cow<'a, str>>,
{
Satellite {
name: name.into(),
mass,
radius,
orbit,
}
}
}