1use super::*;
2
3#[derive(Debug, Parser)]
4pub(crate) struct Traits {
5 #[arg(help = "Show traits for <SAT>.")]
6 sat: Sat,
7}
8
9#[derive(Debug, PartialEq, Serialize, Deserialize)]
10pub struct Output {
11 pub number: u64,
12 pub decimal: String,
13 pub degree: String,
14 pub name: String,
15 pub height: u32,
16 pub cycle: u32,
17 pub epoch: u32,
18 pub period: u32,
19 pub offset: u64,
20 pub rarity: Rarity,
21}
22
23impl Traits {
24 pub(crate) fn run(self) -> SubcommandResult {
25 Ok(Some(Box::new(Output {
26 number: self.sat.n(),
27 decimal: self.sat.decimal().to_string(),
28 degree: self.sat.degree().to_string(),
29 name: self.sat.name(),
30 height: self.sat.height().0,
31 cycle: self.sat.cycle(),
32 epoch: self.sat.epoch().0,
33 period: self.sat.period(),
34 offset: self.sat.third(),
35 rarity: self.sat.rarity(),
36 })))
37 }
38}