diff --git a/crates/lox_core/src/odm/common.rs b/crates/lox_core/src/odm/common.rs index 3421be80..3ba53990 100644 --- a/crates/lox_core/src/odm/common.rs +++ b/crates/lox_core/src/odm/common.rs @@ -1,848 +1,1173 @@ -mod schema_common -{ - pub mod xml_schema_types - { - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - AccUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - AngleUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - AngleRange(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - AngleRateUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - AngMomentumUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - AngVelFrameType(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - AreaUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - DayIntervalUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - FrequencyUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - GmUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - InclinationRange(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - LengthUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - MassUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - MomentUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - WkgUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - ObjectDescriptionType(#[serde(rename = "$text")] std :: string :: - String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - Ms2Units(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - Km2Units(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - Km2sUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - Km2s2Units(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - PositionUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - VelocityUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq)] pub struct VecDouble - { pub items : Vec < f64 > } impl yaserde :: YaDeserialize for - VecDouble - { - fn deserialize < R : std :: io :: Read > - (reader : & mut yaserde :: de :: Deserializer < R >) -> Result < - Self, String > - { - loop - { - match reader.next_event() ? - { - xml :: reader :: XmlEvent :: StartElement { .. } => {} xml - :: reader :: XmlEvent :: Characters(ref text_content) => - { - let items : Vec < f64 > = - text_content.split(' ').map(| item | - item.to_owned()).map(| item | - item.parse().unwrap()).collect() ; return - Ok(VecDouble { items }) ; - } _ => { break ; } +mod schema_common { + pub mod xml_schema_types { + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AccUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AngleUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AngleRange(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AngleRateUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AngMomentumUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AngVelFrameType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AreaUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct DayIntervalUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct FrequencyUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct GmUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct InclinationRange(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct LengthUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct MassUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct MomentUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct WkgUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct ObjectDescriptionType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct Ms2Units(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct Km2Units(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct Km2sUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct Km2s2Units(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct PositionUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct VelocityUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq)] + pub struct VecDouble { + pub items: Vec, + } + impl yaserde::YaDeserialize for VecDouble { + fn deserialize( + reader: &mut yaserde::de::Deserializer, + ) -> Result { + loop { + match reader.next_event()? { + xml::reader::XmlEvent::StartElement { .. } => {} + xml::reader::XmlEvent::Characters(ref text_content) => { + let items: Vec = text_content + .split(' ') + .map(|item| item.to_owned()) + .map(|item| item.parse().unwrap()) + .collect(); + return Ok(VecDouble { items }); + } + _ => { + break; + } } - } Err("Unable to parse attribute".to_string()) + } + Err("Unable to parse attribute".to_string()) } - } impl yaserde :: YaSerialize for VecDouble - { - fn serialize < W : std :: io :: Write > - (& self, writer : & mut yaserde :: ser :: Serializer < W >) -> - Result < (), String > - { - let content = - self.items.iter().map(| item | item.to_string()).collect :: < - Vec < String >> ().join(" ") ; let data_event = xml :: writer - :: XmlEvent :: characters(& content) ; - writer.write(data_event).map_err(| e | e.to_string()) ? ; + } + impl yaserde::YaSerialize for VecDouble { + fn serialize( + &self, + writer: &mut yaserde::ser::Serializer, + ) -> Result<(), String> { + let content = self + .items + .iter() + .map(|item| item.to_string()) + .collect::>() + .join(" "); + let data_event = xml::writer::XmlEvent::characters(&content); + writer.write(data_event).map_err(|e| e.to_string())?; Ok(()) - } fn - serialize_attributes(& self, mut source_attributes : Vec < xml :: - attribute :: OwnedAttribute >, mut source_namespace : xml :: - namespace :: Namespace) -> Result < - (Vec < xml :: attribute :: OwnedAttribute >, xml :: namespace :: - Namespace), String > { Ok((source_attributes, source_namespace)) } - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - Vec3Double(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - Vec6Double(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - Vec9Double(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - EpochType(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - TimeUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - TimeSystemType(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - NegativeDouble(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - NonNegativeDouble(#[serde(rename = "$text")] std :: string :: String) - ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - NonPositiveDouble(#[serde(rename = "$text")] std :: string :: String) - ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - PercentType(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - PositiveDouble(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - Range100Type(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - ProbabilityType(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - PercentageUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - YesNoType(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - TrajBasisType(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - RevNumBasisType(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - CovBasisType(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - ManBasisType(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - ManDcType(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - NumPerYearUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - ThrustUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - CovOrderType(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - GeomagUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - SolarFluxUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - PositionCovarianceUnits(#[serde(rename = "$text")] std :: string :: - String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - VelocityCovarianceUnits(#[serde(rename = "$text")] std :: string :: - String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - PositionVelocityCovarianceUnits(#[serde(rename = "$text")] std :: - string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - BallisticCoeffUnitsType(#[serde(rename = "$text")] std :: string :: - String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - LatRange(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - AltRange(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - LonRange(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - LatLonUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - ControlledType(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - DisintegrationType(#[serde(rename = "$text")] std :: string :: String) - ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - ImpactUncertaintyType(#[serde(rename = "$text")] std :: string :: - String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - ReentryUncertaintyMethodType(#[serde(rename = "$text")] std :: string - :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - QuaternionComponentType(#[serde(rename = "$text")] std :: string :: - String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - QuaternionDotUnits(#[serde(rename = "$text")] std :: string :: String) - ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - RotDirectionType(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - RotseqType(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - AngleKeywordType(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - AngleRateKeywordType(#[serde(rename = "$text")] std :: string :: - String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - ApmRateFrameType(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - TorqueUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct NdmHeader - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "CREATION_DATE")] pub creation_date : EpochType, - #[serde(rename = "ORIGINATOR")] pub originator : String, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct AdmHeader - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "CREATION_DATE")] pub creation_date : EpochType, - #[serde(rename = "ORIGINATOR")] pub originator : String, - #[serde(rename = "MESSAGE_ID")] pub message_id : Option < String - >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OdmHeader - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "CLASSIFICATION")] pub classification_list : Vec - < String >, #[serde(rename = "CREATION_DATE")] pub creation_date : - EpochType, #[serde(rename = "ORIGINATOR")] pub originator : - String, #[serde(rename = "MESSAGE_ID")] pub message_id : Option < - String >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct AccType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < AccUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct AngleType - { - #[serde(rename = "$text")] pub base : AngleRange, - #[serde(rename = "@units")] pub units : Option < AngleUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct AngleRateType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < AngleRateUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct AngMomentumType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : AngMomentumUnits, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct AngVelComponentType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < AngleRateUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct AngVelStateType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "REF_FRAME_A")] pub ref_frame_a : String, - #[serde(rename = "REF_FRAME_B")] pub ref_frame_b : String, - #[serde(rename = "ANGVEL_FRAME")] pub angvel_frame : - AngVelFrameType, #[serde(rename = "ANGVEL_X")] pub angvel_x : - AngVelComponentType, #[serde(rename = "ANGVEL_Y")] pub angvel_y : - AngVelComponentType, #[serde(rename = "ANGVEL_Z")] pub angvel_z : - AngVelComponentType, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct AngVelType - { - #[serde(rename = "ANGVEL_X")] pub angvel_x : AngVelComponentType, - #[serde(rename = "ANGVEL_Y")] pub angvel_y : AngVelComponentType, - #[serde(rename = "ANGVEL_Z")] pub angvel_z : AngVelComponentType, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct AreaType - { - #[serde(rename = "$text")] pub base : NonNegativeDouble, - #[serde(rename = "@units")] pub units : Option < AreaUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct DayIntervalType - { - #[serde(rename = "$text")] pub base : NonNegativeDouble, - #[serde(rename = "@units")] pub units : DayIntervalUnits, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OcmDayIntervalType - { - #[serde(rename = "$text")] pub base : NonNegativeDouble, - #[serde(rename = "@units")] pub units : Option < DayIntervalUnits - >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct DeltamassType - { - #[serde(rename = "$text")] pub base : NegativeDouble, - #[serde(rename = "@units")] pub units : Option < MassUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct DeltamassTypeZ - { - #[serde(rename = "$text")] pub base : NonPositiveDouble, - #[serde(rename = "@units")] pub units : Option < MassUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct FrequencyType - { - #[serde(rename = "$text")] pub base : PositiveDouble, - #[serde(rename = "@units")] pub units : Option < FrequencyUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct GmType - { - #[serde(rename = "$text")] pub base : PositiveDouble, - #[serde(rename = "@units")] pub units : Option < GmUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct InclinationType - { - #[serde(rename = "$text")] pub base : InclinationRange, - #[serde(rename = "@units")] pub units : Option < AngleUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct LengthType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : LengthUnits, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OcmLengthType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < LengthUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct MassType - { - #[serde(rename = "$text")] pub base : NonNegativeDouble, - #[serde(rename = "@units")] pub units : Option < MassUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct MomentType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < MomentUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct WkgType - { - #[serde(rename = "$text")] pub base : NonNegativeDouble, - #[serde(rename = "@units")] pub units : WkgUnits, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OdParametersType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "TIME_LASTOB_START")] pub time_lastob_start : - Option < EpochType >, #[serde(rename = "TIME_LASTOB_END")] pub - time_lastob_end : Option < EpochType >, - #[serde(rename = "RECOMMENDED_OD_SPAN")] pub recommended_od_span : - Option < DayIntervalType >, #[serde(rename = "ACTUAL_OD_SPAN")] - pub actual_od_span : Option < DayIntervalType >, - #[serde(rename = "OBS_AVAILABLE")] pub obs_available : Option < - u64 >, #[serde(rename = "OBS_USED")] pub obs_used : Option < u64 - >, #[serde(rename = "TRACKS_AVAILABLE")] pub tracks_available : - Option < u64 >, #[serde(rename = "TRACKS_USED")] pub tracks_used : - Option < u64 >, #[serde(rename = "RESIDUALS_ACCEPTED")] pub - residuals_accepted : Option < PercentageType >, - #[serde(rename = "WEIGHTED_RMS")] pub weighted_rms : Option < - NonNegativeDouble >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct SpacecraftParametersType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "MASS")] pub mass : Option < MassType >, - #[serde(rename = "SOLAR_RAD_AREA")] pub solar_rad_area : Option < - AreaType >, #[serde(rename = "SOLAR_RAD_COEFF")] pub - solar_rad_coeff : Option < NonNegativeDouble >, - #[serde(rename = "DRAG_AREA")] pub drag_area : Option < AreaType - >, #[serde(rename = "DRAG_COEFF")] pub drag_coeff : Option < - NonNegativeDouble >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct StateVectorType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "EPOCH")] pub epoch : EpochType, - #[serde(rename = "X")] pub x : PositionType, - #[serde(rename = "Y")] pub y : PositionType, - #[serde(rename = "Z")] pub z : PositionType, - #[serde(rename = "X_DOT")] pub x_dot : VelocityType, - #[serde(rename = "Y_DOT")] pub y_dot : VelocityType, - #[serde(rename = "Z_DOT")] pub z_dot : VelocityType, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct StateVectorAccType - { - #[serde(rename = "EPOCH")] pub epoch : EpochType, - #[serde(rename = "X")] pub x : PositionType, - #[serde(rename = "Y")] pub y : PositionType, - #[serde(rename = "Z")] pub z : PositionType, - #[serde(rename = "X_DOT")] pub x_dot : VelocityType, - #[serde(rename = "Y_DOT")] pub y_dot : VelocityType, - #[serde(rename = "Z_DOT")] pub z_dot : VelocityType, - #[serde(rename = "X_DDOT")] pub x_ddot : Option < AccType >, - #[serde(rename = "Y_DDOT")] pub y_ddot : Option < AccType >, - #[serde(rename = "Z_DDOT")] pub z_ddot : Option < AccType >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct Ms2Type - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Ms2Units, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct Km2Type - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < Km2Units >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct Km2sType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < Km2sUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct Km2s2Type - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < Km2s2Units >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct DistanceType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < PositionUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct PositionType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < PositionUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct RdmPositionType - { #[serde(rename = "$text")] pub base : String, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct VelocityType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < VelocityUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct RdmVelocityType - { #[serde(rename = "$text")] pub base : String, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct DurationType - { - #[serde(rename = "$text")] pub base : NonNegativeDouble, - #[serde(rename = "@units")] pub units : Option < TimeUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct RelTimeType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < TimeUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct TimeOffsetType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < TimeUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct PercentageType - { - #[serde(rename = "$text")] pub base : Range100Type, - #[serde(rename = "@units")] pub units : Option < PercentageUnits - >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct ManeuverFreqType - { - #[serde(rename = "$text")] pub base : NonNegativeDouble, - #[serde(rename = "@units")] pub units : Option < NumPerYearUnits - >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct ThrustType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < ThrustUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct GeomagType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < GeomagUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct SolarFluxType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < SolarFluxUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - OpmCovarianceMatrixAbstractType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "COV_REF_FRAME")] pub cov_ref_frame : Option < - String >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - OemCovarianceMatrixAbstractType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "EPOCH")] pub epoch : EpochType, - #[serde(rename = "COV_REF_FRAME")] pub cov_ref_frame : Option < - String >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OemCovarianceMatrixType - { #[serde(flatten)] pub base : OemCovarianceMatrixAbstractType, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OpmCovarianceMatrixType - { - #[serde(flatten)] pub base : OpmCovarianceMatrixAbstractType, - #[serde(flatten)] pub extension : CovarianceMatrixElementsGroup, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct PositionCovarianceType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < - PositionCovarianceUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct VelocityCovarianceType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < - VelocityCovarianceUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - PositionVelocityCovarianceType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < - PositionVelocityCovarianceUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - AtmosphericReentryParametersType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "ORBIT_LIFETIME")] pub orbit_lifetime : - DayIntervalType, #[serde(rename = "REENTRY_ALTITUDE")] pub - reentry_altitude : PositionType, - #[serde(rename = "ORBIT_LIFETIME_WINDOW_START")] pub - orbit_lifetime_window_start : Option < DayIntervalType >, - #[serde(rename = "ORBIT_LIFETIME_WINDOW_END")] pub - orbit_lifetime_window_end : Option < DayIntervalType >, - #[serde(rename = "NOMINAL_REENTRY_EPOCH")] pub - nominal_reentry_epoch : Option < EpochType >, - #[serde(rename = "REENTRY_WINDOW_START")] pub reentry_window_start - : Option < EpochType >, #[serde(rename = "REENTRY_WINDOW_END")] - pub reentry_window_end : Option < EpochType >, - #[serde(rename = "ORBIT_LIFETIME_CONFIDENCE_LEVEL")] pub - orbit_lifetime_confidence_level : Option < PercentageType >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct GroundImpactParametersType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "PROBABILITY_OF_IMPACT")] pub - probability_of_impact : Option < ProbabilityType >, - #[serde(rename = "PROBABILITY_OF_BURN_UP")] pub - probability_of_burn_up : Option < ProbabilityType >, - #[serde(rename = "PROBABILITY_OF_BREAK_UP")] pub - probability_of_break_up : Option < ProbabilityType >, - #[serde(rename = "PROBABILITY_OF_LAND_IMPACT")] pub - probability_of_land_impact : Option < ProbabilityType >, - #[serde(rename = "PROBABILITY_OF_CASUALTY")] pub - probability_of_casualty : Option < ProbabilityType >, - #[serde(rename = "NOMINAL_IMPACT_EPOCH")] pub nominal_impact_epoch - : Option < EpochType >, #[serde(rename = "IMPACT_WINDOW_START")] - pub impact_window_start : Option < EpochType >, - #[serde(rename = "IMPACT_WINDOW_END")] pub impact_window_end : - Option < EpochType >, #[serde(rename = "IMPACT_REF_FRAME")] pub - impact_ref_frame : Option < String >, - #[serde(rename = "NOMINAL_IMPACT_LON")] pub nominal_impact_lon : - Option < LonType >, #[serde(rename = "NOMINAL_IMPACT_LAT")] pub - nominal_impact_lat : Option < LatType >, - #[serde(rename = "NOMINAL_IMPACT_ALT")] pub nominal_impact_alt : - Option < AltType >, #[serde(rename = "IMPACT_1_CONFIDENCE")] pub - impact_1_confidence : Option < PercentageType >, - #[serde(rename = "IMPACT_1_START_LON")] pub impact_1_start_lon : - Option < LonType >, #[serde(rename = "IMPACT_1_START_LAT")] pub - impact_1_start_lat : Option < LatType >, - #[serde(rename = "IMPACT_1_STOP_LON")] pub impact_1_stop_lon : - Option < LonType >, #[serde(rename = "IMPACT_1_STOP_LAT")] pub - impact_1_stop_lat : Option < LatType >, - #[serde(rename = "IMPACT_1_CROSS_TRACK")] pub impact_1_cross_track - : Option < DistanceType >, - #[serde(rename = "IMPACT_2_CONFIDENCE")] pub impact_2_confidence : - Option < PercentageType >, #[serde(rename = "IMPACT_2_START_LON")] - pub impact_2_start_lon : Option < LonType >, - #[serde(rename = "IMPACT_2_START_LAT")] pub impact_2_start_lat : - Option < LatType >, #[serde(rename = "IMPACT_2_STOP_LON")] pub - impact_2_stop_lon : Option < LonType >, - #[serde(rename = "IMPACT_2_STOP_LAT")] pub impact_2_stop_lat : - Option < LatType >, #[serde(rename = "IMPACT_2_CROSS_TRACK")] pub - impact_2_cross_track : Option < DistanceType >, - #[serde(rename = "IMPACT_3_CONFIDENCE")] pub impact_3_confidence : - Option < PercentageType >, #[serde(rename = "IMPACT_3_START_LON")] - pub impact_3_start_lon : Option < LonType >, - #[serde(rename = "IMPACT_3_START_LAT")] pub impact_3_start_lat : - Option < LatType >, #[serde(rename = "IMPACT_3_STOP_LON")] pub - impact_3_stop_lon : Option < LonType >, - #[serde(rename = "IMPACT_3_STOP_LAT")] pub impact_3_stop_lat : - Option < LatType >, #[serde(rename = "IMPACT_3_CROSS_TRACK")] pub - impact_3_cross_track : Option < DistanceType >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - RdmSpacecraftParametersType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "WET_MASS")] pub wet_mass : Option < MassType >, - #[serde(rename = "DRY_MASS")] pub dry_mass : Option < MassType >, - #[serde(rename = "HAZARDOUS_SUBSTANCES")] pub hazardous_substances - : Option < String >, #[serde(rename = "SOLAR_RAD_AREA")] pub - solar_rad_area : Option < AreaType >, - #[serde(rename = "SOLAR_RAD_COEFF")] pub solar_rad_coeff : Option - < NonNegativeDouble >, #[serde(rename = "DRAG_AREA")] pub - drag_area : Option < AreaType >, #[serde(rename = "DRAG_COEFF")] - pub drag_coeff : Option < NonNegativeDouble >, - #[serde(rename = "RCS")] pub rcs : Option < AreaType >, - #[serde(rename = "BALLISTIC_COEFF")] pub ballistic_coeff : Option - < BallisticCoeffType >, #[serde(rename = "THRUST_ACCELERATION")] - pub thrust_acceleration : Option < Ms2Type >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct AltType - { - #[serde(rename = "$text")] pub base : AltRange, - #[serde(rename = "@units")] pub units : Option < LengthUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct BallisticCoeffType - { - #[serde(rename = "$text")] pub base : NonNegativeDouble, - #[serde(rename = "@units")] pub units : Option < - BallisticCoeffUnitsType >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct LatType - { - #[serde(rename = "$text")] pub base : LatRange, - #[serde(rename = "@units")] pub units : LatLonUnits, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct LonType - { - #[serde(rename = "$text")] pub base : LonRange, - #[serde(rename = "@units")] pub units : LatLonUnits, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct UserDefinedType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "USER_DEFINED")] pub user_defined_list : Vec < - UserDefinedParameterType >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct UserDefinedParameterType - { - #[serde(rename = "$text")] pub base : String, - #[serde(rename = "@parameter")] pub parameter : String, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct QuaternionType {} - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct QuaternionRateType {} - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct QuaternionDotType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < - QuaternionDotUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct RotationAngleType - { - #[serde(rename = "rotation1")] pub rotation1 : - RotationAngleComponentType, #[serde(rename = "rotation2")] pub - rotation2 : RotationAngleComponentType, - #[serde(rename = "rotation3")] pub rotation3 : - RotationAngleComponentType, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - RotationAngleComponentTypeold - { - #[serde(rename = "@units")] pub units : Option < AngleUnits >, - #[serde(rename = "@angle")] pub angle : AngleKeywordType, - #[serde(rename = "@value")] pub value : AngleRange, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct RotationAngleComponentType - { - #[serde(rename = "$text")] pub base : AngleRange, - #[serde(rename = "@angle")] pub angle : AngleKeywordType, - #[serde(rename = "@units")] pub units : Option < AngleUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct RotationRateType - { - #[serde(rename = "rotation1")] pub rotation1 : - RotationRateComponentType, #[serde(rename = "rotation2")] pub - rotation2 : RotationRateComponentType, - #[serde(rename = "rotation3")] pub rotation3 : - RotationRateComponentType, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - RotationRateComponentTypeOld - { - #[serde(rename = "@units")] pub units : Option < AngleRateUnits >, - #[serde(rename = "@rate")] pub rate : AngleRateKeywordType, - #[serde(rename = "@value")] pub value : f64, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct RotationRateComponentType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@rate")] pub rate : AngleRateKeywordType, - #[serde(rename = "@units")] pub units : Option < AngleRateUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct TorqueType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < TorqueUnits >, - } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - CovarianceMatrixElementsGroup - { - #[serde(rename = "CX_X")] pub cx_x : PositionCovarianceType, - #[serde(rename = "CY_X")] pub cy_x : PositionCovarianceType, - #[serde(rename = "CY_Y")] pub cy_y : PositionCovarianceType, - #[serde(rename = "CZ_X")] pub cz_x : PositionCovarianceType, - #[serde(rename = "CZ_Y")] pub cz_y : PositionCovarianceType, - #[serde(rename = "CZ_Z")] pub cz_z : PositionCovarianceType, - #[serde(rename = "CX_DOT_X")] pub cx_dot_x : - PositionVelocityCovarianceType, #[serde(rename = "CX_DOT_Y")] pub - cx_dot_y : PositionVelocityCovarianceType, - #[serde(rename = "CX_DOT_Z")] pub cx_dot_z : - PositionVelocityCovarianceType, #[serde(rename = "CX_DOT_X_DOT")] - pub cx_dot_x_dot : VelocityCovarianceType, - #[serde(rename = "CY_DOT_X")] pub cy_dot_x : - PositionVelocityCovarianceType, #[serde(rename = "CY_DOT_Y")] pub - cy_dot_y : PositionVelocityCovarianceType, - #[serde(rename = "CY_DOT_Z")] pub cy_dot_z : - PositionVelocityCovarianceType, #[serde(rename = "CY_DOT_X_DOT")] - pub cy_dot_x_dot : VelocityCovarianceType, - #[serde(rename = "CY_DOT_Y_DOT")] pub cy_dot_y_dot : - VelocityCovarianceType, #[serde(rename = "CZ_DOT_X")] pub cz_dot_x - : PositionVelocityCovarianceType, #[serde(rename = "CZ_DOT_Y")] - pub cz_dot_y : PositionVelocityCovarianceType, - #[serde(rename = "CZ_DOT_Z")] pub cz_dot_z : - PositionVelocityCovarianceType, #[serde(rename = "CZ_DOT_X_DOT")] - pub cz_dot_x_dot : VelocityCovarianceType, - #[serde(rename = "CZ_DOT_Y_DOT")] pub cz_dot_y_dot : - VelocityCovarianceType, #[serde(rename = "CZ_DOT_Z_DOT")] pub - cz_dot_z_dot : VelocityCovarianceType, + } + fn serialize_attributes( + &self, + mut source_attributes: Vec, + mut source_namespace: xml::namespace::Namespace, + ) -> Result< + ( + Vec, + xml::namespace::Namespace, + ), + String, + > { + Ok((source_attributes, source_namespace)) + } + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct Vec3Double(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct Vec6Double(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct Vec9Double(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct EpochType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct TimeUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct TimeSystemType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct NegativeDouble(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct NonNegativeDouble(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct NonPositiveDouble(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct PercentType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct PositiveDouble(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct Range100Type(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct ProbabilityType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct PercentageUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct YesNoType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct TrajBasisType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct RevNumBasisType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct CovBasisType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct ManBasisType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct ManDcType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct NumPerYearUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct ThrustUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct CovOrderType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct GeomagUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct SolarFluxUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct PositionCovarianceUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct VelocityCovarianceUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct PositionVelocityCovarianceUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct BallisticCoeffUnitsType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct LatRange(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AltRange(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct LonRange(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct LatLonUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct ControlledType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct DisintegrationType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct ImpactUncertaintyType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct ReentryUncertaintyMethodType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct QuaternionComponentType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct QuaternionDotUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct RotDirectionType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct RotseqType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AngleKeywordType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AngleRateKeywordType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct ApmRateFrameType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct TorqueUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct NdmHeader { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "CREATION_DATE")] + pub creation_date: EpochType, + #[serde(rename = "ORIGINATOR")] + pub originator: String, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AdmHeader { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "CREATION_DATE")] + pub creation_date: EpochType, + #[serde(rename = "ORIGINATOR")] + pub originator: String, + #[serde(rename = "MESSAGE_ID")] + pub message_id: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OdmHeader { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "CLASSIFICATION")] + pub classification_list: Vec, + #[serde(rename = "CREATION_DATE")] + pub creation_date: EpochType, + #[serde(rename = "ORIGINATOR")] + pub originator: String, + #[serde(rename = "MESSAGE_ID")] + pub message_id: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AccType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AngleType { + #[serde(rename = "$text")] + pub base: AngleRange, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AngleRateType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AngMomentumType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: AngMomentumUnits, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AngVelComponentType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AngVelStateType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "REF_FRAME_A")] + pub ref_frame_a: String, + #[serde(rename = "REF_FRAME_B")] + pub ref_frame_b: String, + #[serde(rename = "ANGVEL_FRAME")] + pub angvel_frame: AngVelFrameType, + #[serde(rename = "ANGVEL_X")] + pub angvel_x: AngVelComponentType, + #[serde(rename = "ANGVEL_Y")] + pub angvel_y: AngVelComponentType, + #[serde(rename = "ANGVEL_Z")] + pub angvel_z: AngVelComponentType, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AngVelType { + #[serde(rename = "ANGVEL_X")] + pub angvel_x: AngVelComponentType, + #[serde(rename = "ANGVEL_Y")] + pub angvel_y: AngVelComponentType, + #[serde(rename = "ANGVEL_Z")] + pub angvel_z: AngVelComponentType, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AreaType { + #[serde(rename = "$text")] + pub base: NonNegativeDouble, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct DayIntervalType { + #[serde(rename = "$text")] + pub base: NonNegativeDouble, + #[serde(rename = "@units")] + pub units: DayIntervalUnits, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OcmDayIntervalType { + #[serde(rename = "$text")] + pub base: NonNegativeDouble, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct DeltamassType { + #[serde(rename = "$text")] + pub base: NegativeDouble, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct DeltamassTypeZ { + #[serde(rename = "$text")] + pub base: NonPositiveDouble, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct FrequencyType { + #[serde(rename = "$text")] + pub base: PositiveDouble, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct GmType { + #[serde(rename = "$text")] + pub base: PositiveDouble, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct InclinationType { + #[serde(rename = "$text")] + pub base: InclinationRange, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct LengthType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: LengthUnits, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OcmLengthType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct MassType { + #[serde(rename = "$text")] + pub base: NonNegativeDouble, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct MomentType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct WkgType { + #[serde(rename = "$text")] + pub base: NonNegativeDouble, + #[serde(rename = "@units")] + pub units: WkgUnits, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OdParametersType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "TIME_LASTOB_START")] + pub time_lastob_start: Option, + #[serde(rename = "TIME_LASTOB_END")] + pub time_lastob_end: Option, + #[serde(rename = "RECOMMENDED_OD_SPAN")] + pub recommended_od_span: Option, + #[serde(rename = "ACTUAL_OD_SPAN")] + pub actual_od_span: Option, + #[serde(rename = "OBS_AVAILABLE")] + pub obs_available: Option, + #[serde(rename = "OBS_USED")] + pub obs_used: Option, + #[serde(rename = "TRACKS_AVAILABLE")] + pub tracks_available: Option, + #[serde(rename = "TRACKS_USED")] + pub tracks_used: Option, + #[serde(rename = "RESIDUALS_ACCEPTED")] + pub residuals_accepted: Option, + #[serde(rename = "WEIGHTED_RMS")] + pub weighted_rms: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct SpacecraftParametersType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "MASS")] + pub mass: Option, + #[serde(rename = "SOLAR_RAD_AREA")] + pub solar_rad_area: Option, + #[serde(rename = "SOLAR_RAD_COEFF")] + pub solar_rad_coeff: Option, + #[serde(rename = "DRAG_AREA")] + pub drag_area: Option, + #[serde(rename = "DRAG_COEFF")] + pub drag_coeff: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct StateVectorType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "EPOCH")] + pub epoch: EpochType, + #[serde(rename = "X")] + pub x: PositionType, + #[serde(rename = "Y")] + pub y: PositionType, + #[serde(rename = "Z")] + pub z: PositionType, + #[serde(rename = "X_DOT")] + pub x_dot: VelocityType, + #[serde(rename = "Y_DOT")] + pub y_dot: VelocityType, + #[serde(rename = "Z_DOT")] + pub z_dot: VelocityType, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct StateVectorAccType { + #[serde(rename = "EPOCH")] + pub epoch: EpochType, + #[serde(rename = "X")] + pub x: PositionType, + #[serde(rename = "Y")] + pub y: PositionType, + #[serde(rename = "Z")] + pub z: PositionType, + #[serde(rename = "X_DOT")] + pub x_dot: VelocityType, + #[serde(rename = "Y_DOT")] + pub y_dot: VelocityType, + #[serde(rename = "Z_DOT")] + pub z_dot: VelocityType, + #[serde(rename = "X_DDOT")] + pub x_ddot: Option, + #[serde(rename = "Y_DDOT")] + pub y_ddot: Option, + #[serde(rename = "Z_DDOT")] + pub z_ddot: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct Ms2Type { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Ms2Units, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct Km2Type { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct Km2sType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct Km2s2Type { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct DistanceType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct PositionType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct RdmPositionType { + #[serde(rename = "$text")] + pub base: String, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct VelocityType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct RdmVelocityType { + #[serde(rename = "$text")] + pub base: String, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct DurationType { + #[serde(rename = "$text")] + pub base: NonNegativeDouble, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct RelTimeType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct TimeOffsetType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct PercentageType { + #[serde(rename = "$text")] + pub base: Range100Type, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct ManeuverFreqType { + #[serde(rename = "$text")] + pub base: NonNegativeDouble, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct ThrustType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct GeomagType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct SolarFluxType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OpmCovarianceMatrixAbstractType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "COV_REF_FRAME")] + pub cov_ref_frame: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OemCovarianceMatrixAbstractType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "EPOCH")] + pub epoch: EpochType, + #[serde(rename = "COV_REF_FRAME")] + pub cov_ref_frame: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OemCovarianceMatrixType { + #[serde(flatten)] + pub base: OemCovarianceMatrixAbstractType, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OpmCovarianceMatrixType { + #[serde(flatten)] + pub base: OpmCovarianceMatrixAbstractType, + #[serde(flatten)] + pub extension: CovarianceMatrixElementsGroup, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct PositionCovarianceType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct VelocityCovarianceType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct PositionVelocityCovarianceType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AtmosphericReentryParametersType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "ORBIT_LIFETIME")] + pub orbit_lifetime: DayIntervalType, + #[serde(rename = "REENTRY_ALTITUDE")] + pub reentry_altitude: PositionType, + #[serde(rename = "ORBIT_LIFETIME_WINDOW_START")] + pub orbit_lifetime_window_start: Option, + #[serde(rename = "ORBIT_LIFETIME_WINDOW_END")] + pub orbit_lifetime_window_end: Option, + #[serde(rename = "NOMINAL_REENTRY_EPOCH")] + pub nominal_reentry_epoch: Option, + #[serde(rename = "REENTRY_WINDOW_START")] + pub reentry_window_start: Option, + #[serde(rename = "REENTRY_WINDOW_END")] + pub reentry_window_end: Option, + #[serde(rename = "ORBIT_LIFETIME_CONFIDENCE_LEVEL")] + pub orbit_lifetime_confidence_level: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct GroundImpactParametersType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "PROBABILITY_OF_IMPACT")] + pub probability_of_impact: Option, + #[serde(rename = "PROBABILITY_OF_BURN_UP")] + pub probability_of_burn_up: Option, + #[serde(rename = "PROBABILITY_OF_BREAK_UP")] + pub probability_of_break_up: Option, + #[serde(rename = "PROBABILITY_OF_LAND_IMPACT")] + pub probability_of_land_impact: Option, + #[serde(rename = "PROBABILITY_OF_CASUALTY")] + pub probability_of_casualty: Option, + #[serde(rename = "NOMINAL_IMPACT_EPOCH")] + pub nominal_impact_epoch: Option, + #[serde(rename = "IMPACT_WINDOW_START")] + pub impact_window_start: Option, + #[serde(rename = "IMPACT_WINDOW_END")] + pub impact_window_end: Option, + #[serde(rename = "IMPACT_REF_FRAME")] + pub impact_ref_frame: Option, + #[serde(rename = "NOMINAL_IMPACT_LON")] + pub nominal_impact_lon: Option, + #[serde(rename = "NOMINAL_IMPACT_LAT")] + pub nominal_impact_lat: Option, + #[serde(rename = "NOMINAL_IMPACT_ALT")] + pub nominal_impact_alt: Option, + #[serde(rename = "IMPACT_1_CONFIDENCE")] + pub impact_1_confidence: Option, + #[serde(rename = "IMPACT_1_START_LON")] + pub impact_1_start_lon: Option, + #[serde(rename = "IMPACT_1_START_LAT")] + pub impact_1_start_lat: Option, + #[serde(rename = "IMPACT_1_STOP_LON")] + pub impact_1_stop_lon: Option, + #[serde(rename = "IMPACT_1_STOP_LAT")] + pub impact_1_stop_lat: Option, + #[serde(rename = "IMPACT_1_CROSS_TRACK")] + pub impact_1_cross_track: Option, + #[serde(rename = "IMPACT_2_CONFIDENCE")] + pub impact_2_confidence: Option, + #[serde(rename = "IMPACT_2_START_LON")] + pub impact_2_start_lon: Option, + #[serde(rename = "IMPACT_2_START_LAT")] + pub impact_2_start_lat: Option, + #[serde(rename = "IMPACT_2_STOP_LON")] + pub impact_2_stop_lon: Option, + #[serde(rename = "IMPACT_2_STOP_LAT")] + pub impact_2_stop_lat: Option, + #[serde(rename = "IMPACT_2_CROSS_TRACK")] + pub impact_2_cross_track: Option, + #[serde(rename = "IMPACT_3_CONFIDENCE")] + pub impact_3_confidence: Option, + #[serde(rename = "IMPACT_3_START_LON")] + pub impact_3_start_lon: Option, + #[serde(rename = "IMPACT_3_START_LAT")] + pub impact_3_start_lat: Option, + #[serde(rename = "IMPACT_3_STOP_LON")] + pub impact_3_stop_lon: Option, + #[serde(rename = "IMPACT_3_STOP_LAT")] + pub impact_3_stop_lat: Option, + #[serde(rename = "IMPACT_3_CROSS_TRACK")] + pub impact_3_cross_track: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct RdmSpacecraftParametersType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "WET_MASS")] + pub wet_mass: Option, + #[serde(rename = "DRY_MASS")] + pub dry_mass: Option, + #[serde(rename = "HAZARDOUS_SUBSTANCES")] + pub hazardous_substances: Option, + #[serde(rename = "SOLAR_RAD_AREA")] + pub solar_rad_area: Option, + #[serde(rename = "SOLAR_RAD_COEFF")] + pub solar_rad_coeff: Option, + #[serde(rename = "DRAG_AREA")] + pub drag_area: Option, + #[serde(rename = "DRAG_COEFF")] + pub drag_coeff: Option, + #[serde(rename = "RCS")] + pub rcs: Option, + #[serde(rename = "BALLISTIC_COEFF")] + pub ballistic_coeff: Option, + #[serde(rename = "THRUST_ACCELERATION")] + pub thrust_acceleration: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AltType { + #[serde(rename = "$text")] + pub base: AltRange, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct BallisticCoeffType { + #[serde(rename = "$text")] + pub base: NonNegativeDouble, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct LatType { + #[serde(rename = "$text")] + pub base: LatRange, + #[serde(rename = "@units")] + pub units: LatLonUnits, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct LonType { + #[serde(rename = "$text")] + pub base: LonRange, + #[serde(rename = "@units")] + pub units: LatLonUnits, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct UserDefinedType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "USER_DEFINED")] + pub user_defined_list: Vec, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct UserDefinedParameterType { + #[serde(rename = "$text")] + pub base: String, + #[serde(rename = "@parameter")] + pub parameter: String, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct QuaternionType {} + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct QuaternionRateType {} + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct QuaternionDotType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct RotationAngleType { + #[serde(rename = "rotation1")] + pub rotation1: RotationAngleComponentType, + #[serde(rename = "rotation2")] + pub rotation2: RotationAngleComponentType, + #[serde(rename = "rotation3")] + pub rotation3: RotationAngleComponentType, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct RotationAngleComponentTypeold { + #[serde(rename = "@units")] + pub units: Option, + #[serde(rename = "@angle")] + pub angle: AngleKeywordType, + #[serde(rename = "@value")] + pub value: AngleRange, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct RotationAngleComponentType { + #[serde(rename = "$text")] + pub base: AngleRange, + #[serde(rename = "@angle")] + pub angle: AngleKeywordType, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct RotationRateType { + #[serde(rename = "rotation1")] + pub rotation1: RotationRateComponentType, + #[serde(rename = "rotation2")] + pub rotation2: RotationRateComponentType, + #[serde(rename = "rotation3")] + pub rotation3: RotationRateComponentType, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct RotationRateComponentTypeOld { + #[serde(rename = "@units")] + pub units: Option, + #[serde(rename = "@rate")] + pub rate: AngleRateKeywordType, + #[serde(rename = "@value")] + pub value: f64, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct RotationRateComponentType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@rate")] + pub rate: AngleRateKeywordType, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct TorqueType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct CovarianceMatrixElementsGroup { + #[serde(rename = "CX_X")] + pub cx_x: PositionCovarianceType, + #[serde(rename = "CY_X")] + pub cy_x: PositionCovarianceType, + #[serde(rename = "CY_Y")] + pub cy_y: PositionCovarianceType, + #[serde(rename = "CZ_X")] + pub cz_x: PositionCovarianceType, + #[serde(rename = "CZ_Y")] + pub cz_y: PositionCovarianceType, + #[serde(rename = "CZ_Z")] + pub cz_z: PositionCovarianceType, + #[serde(rename = "CX_DOT_X")] + pub cx_dot_x: PositionVelocityCovarianceType, + #[serde(rename = "CX_DOT_Y")] + pub cx_dot_y: PositionVelocityCovarianceType, + #[serde(rename = "CX_DOT_Z")] + pub cx_dot_z: PositionVelocityCovarianceType, + #[serde(rename = "CX_DOT_X_DOT")] + pub cx_dot_x_dot: VelocityCovarianceType, + #[serde(rename = "CY_DOT_X")] + pub cy_dot_x: PositionVelocityCovarianceType, + #[serde(rename = "CY_DOT_Y")] + pub cy_dot_y: PositionVelocityCovarianceType, + #[serde(rename = "CY_DOT_Z")] + pub cy_dot_z: PositionVelocityCovarianceType, + #[serde(rename = "CY_DOT_X_DOT")] + pub cy_dot_x_dot: VelocityCovarianceType, + #[serde(rename = "CY_DOT_Y_DOT")] + pub cy_dot_y_dot: VelocityCovarianceType, + #[serde(rename = "CZ_DOT_X")] + pub cz_dot_x: PositionVelocityCovarianceType, + #[serde(rename = "CZ_DOT_Y")] + pub cz_dot_y: PositionVelocityCovarianceType, + #[serde(rename = "CZ_DOT_Z")] + pub cz_dot_z: PositionVelocityCovarianceType, + #[serde(rename = "CZ_DOT_X_DOT")] + pub cz_dot_x_dot: VelocityCovarianceType, + #[serde(rename = "CZ_DOT_Y_DOT")] + pub cz_dot_y_dot: VelocityCovarianceType, + #[serde(rename = "CZ_DOT_Z_DOT")] + pub cz_dot_z_dot: VelocityCovarianceType, } } -} pub use schema_common :: * ; \ No newline at end of file +} +pub use schema_common::*; diff --git a/crates/lox_core/src/odm/ocm.rs b/crates/lox_core/src/odm/ocm.rs index 4fc94bf3..11abed2c 100644 --- a/crates/lox_core/src/odm/ocm.rs +++ b/crates/lox_core/src/odm/ocm.rs @@ -1,423 +1,539 @@ -mod schema_ocm -{ - pub mod xml_schema_types - { - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OcmType - { - #[serde(rename = "header")] pub header : schema_common :: - xml_schema_types :: OdmHeader, #[serde(rename = "body")] pub body - : schema_common :: xml_schema_types :: OcmBody, - #[serde(rename = "@id")] pub id : String, - #[serde(rename = "@version")] pub version : String, +mod schema_ocm { + pub mod xml_schema_types { + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OcmType { + #[serde(rename = "header")] + pub header: schema_common::xml_schema_types::OdmHeader, + #[serde(rename = "body")] + pub body: schema_common::xml_schema_types::OcmBody, + #[serde(rename = "@id")] + pub id: String, + #[serde(rename = "@version")] + pub version: String, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OcmBody - { - #[serde(rename = "segment")] pub segment : schema_common :: - xml_schema_types :: OcmSegment, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OcmBody { + #[serde(rename = "segment")] + pub segment: schema_common::xml_schema_types::OcmSegment, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OcmSegment - { - #[serde(rename = "metadata")] pub metadata : schema_common :: - xml_schema_types :: OcmMetadata, #[serde(rename = "data")] pub - data : schema_common :: xml_schema_types :: OcmData, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OcmSegment { + #[serde(rename = "metadata")] + pub metadata: schema_common::xml_schema_types::OcmMetadata, + #[serde(rename = "data")] + pub data: schema_common::xml_schema_types::OcmData, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OcmMetadata - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "OBJECT_NAME")] pub object_name : Option < String - >, #[serde(rename = "INTERNATIONAL_DESIGNATOR")] pub - international_designator : Option < String >, - #[serde(rename = "CATALOG_NAME")] pub catalog_name : Option < - String >, #[serde(rename = "OBJECT_DESIGNATOR")] pub - object_designator : Option < String >, - #[serde(rename = "ALTERNATE_NAMES")] pub alternate_names : Option - < String >, #[serde(rename = "ORIGINATOR_POC")] pub originator_poc - : Option < String >, #[serde(rename = "ORIGINATOR_POSITION")] pub - originator_position : Option < String >, - #[serde(rename = "ORIGINATOR_PHONE")] pub originator_phone : - Option < String >, #[serde(rename = "ORIGINATOR_EMAIL")] pub - originator_email : Option < String >, - #[serde(rename = "ORIGINATOR_ADDRESS")] pub originator_address : - Option < String >, #[serde(rename = "TECH_ORG")] pub tech_org : - Option < String >, #[serde(rename = "TECH_POC")] pub tech_poc : - Option < String >, #[serde(rename = "TECH_POSITION")] pub - tech_position : Option < String >, #[serde(rename = "TECH_PHONE")] - pub tech_phone : Option < String >, - #[serde(rename = "TECH_EMAIL")] pub tech_email : Option < String - >, #[serde(rename = "TECH_ADDRESS")] pub tech_address : Option < - String >, #[serde(rename = "PREVIOUS_MESSAGE_ID")] pub - previous_message_id : Option < String >, - #[serde(rename = "NEXT_MESSAGE_ID")] pub next_message_id : Option - < String >, #[serde(rename = "ADM_MSG_LINK")] pub adm_msg_link : - Option < String >, #[serde(rename = "CDM_MSG_LINK")] pub - cdm_msg_link : Option < String >, - #[serde(rename = "PRM_MSG_LINK")] pub prm_msg_link : Option < - String >, #[serde(rename = "RDM_MSG_LINK")] pub rdm_msg_link : - Option < String >, #[serde(rename = "TDM_MSG_LINK")] pub - tdm_msg_link : Option < String >, #[serde(rename = "OPERATOR")] - pub operator : Option < String >, #[serde(rename = "OWNER")] pub - owner : Option < String >, #[serde(rename = "COUNTRY")] pub - country : Option < String >, #[serde(rename = "CONSTELLATION")] - pub constellation : Option < String >, - #[serde(rename = "OBJECT_TYPE")] pub object_type : Option < - schema_common :: xml_schema_types :: ObjectDescriptionType >, - #[serde(rename = "TIME_SYSTEM")] pub time_system : String, - #[serde(rename = "EPOCH_TZERO")] pub epoch_tzero : schema_common - :: xml_schema_types :: EpochType, #[serde(rename = "OPS_STATUS")] - pub ops_status : Option < String >, - #[serde(rename = "ORBIT_CATEGORY")] pub orbit_category : Option < - String >, #[serde(rename = "OCM_DATA_ELEMENTS")] pub - ocm_data_elements : Option < String >, - #[serde(rename = "SCLK_OFFSET_AT_EPOCH")] pub sclk_offset_at_epoch - : Option < schema_common :: xml_schema_types :: TimeOffsetType >, - #[serde(rename = "SCLK_SEC_PER_SI_SEC")] pub sclk_sec_per_si_sec : - Option < schema_common :: xml_schema_types :: DurationType >, - #[serde(rename = "PREVIOUS_MESSAGE_EPOCH")] pub - previous_message_epoch : Option < schema_common :: - xml_schema_types :: EpochType >, - #[serde(rename = "NEXT_MESSAGE_EPOCH")] pub next_message_epoch : - Option < schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "START_TIME")] pub start_time : Option < - schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "STOP_TIME")] pub stop_time : Option < - schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "TIME_SPAN")] pub time_span : Option < - schema_common :: xml_schema_types :: OcmDayIntervalType >, - #[serde(rename = "TAIMUTC_AT_TZERO")] pub taimutc_at_tzero : - Option < schema_common :: xml_schema_types :: TimeOffsetType >, - #[serde(rename = "NEXT_LEAP_EPOCH")] pub next_leap_epoch : Option - < schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "NEXT_LEAP_TAIMUTC")] pub next_leap_taimutc : - Option < schema_common :: xml_schema_types :: TimeOffsetType >, - #[serde(rename = "UT1MUTC_AT_TZERO")] pub ut1mutc_at_tzero : - Option < schema_common :: xml_schema_types :: TimeOffsetType >, - #[serde(rename = "EOP_SOURCE")] pub eop_source : Option < String - >, #[serde(rename = "INTERP_METHOD_EOP")] pub interp_method_eop : - Option < String >, #[serde(rename = "CELESTIAL_SOURCE")] pub - celestial_source : Option < String >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OcmMetadata { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "OBJECT_NAME")] + pub object_name: Option, + #[serde(rename = "INTERNATIONAL_DESIGNATOR")] + pub international_designator: Option, + #[serde(rename = "CATALOG_NAME")] + pub catalog_name: Option, + #[serde(rename = "OBJECT_DESIGNATOR")] + pub object_designator: Option, + #[serde(rename = "ALTERNATE_NAMES")] + pub alternate_names: Option, + #[serde(rename = "ORIGINATOR_POC")] + pub originator_poc: Option, + #[serde(rename = "ORIGINATOR_POSITION")] + pub originator_position: Option, + #[serde(rename = "ORIGINATOR_PHONE")] + pub originator_phone: Option, + #[serde(rename = "ORIGINATOR_EMAIL")] + pub originator_email: Option, + #[serde(rename = "ORIGINATOR_ADDRESS")] + pub originator_address: Option, + #[serde(rename = "TECH_ORG")] + pub tech_org: Option, + #[serde(rename = "TECH_POC")] + pub tech_poc: Option, + #[serde(rename = "TECH_POSITION")] + pub tech_position: Option, + #[serde(rename = "TECH_PHONE")] + pub tech_phone: Option, + #[serde(rename = "TECH_EMAIL")] + pub tech_email: Option, + #[serde(rename = "TECH_ADDRESS")] + pub tech_address: Option, + #[serde(rename = "PREVIOUS_MESSAGE_ID")] + pub previous_message_id: Option, + #[serde(rename = "NEXT_MESSAGE_ID")] + pub next_message_id: Option, + #[serde(rename = "ADM_MSG_LINK")] + pub adm_msg_link: Option, + #[serde(rename = "CDM_MSG_LINK")] + pub cdm_msg_link: Option, + #[serde(rename = "PRM_MSG_LINK")] + pub prm_msg_link: Option, + #[serde(rename = "RDM_MSG_LINK")] + pub rdm_msg_link: Option, + #[serde(rename = "TDM_MSG_LINK")] + pub tdm_msg_link: Option, + #[serde(rename = "OPERATOR")] + pub operator: Option, + #[serde(rename = "OWNER")] + pub owner: Option, + #[serde(rename = "COUNTRY")] + pub country: Option, + #[serde(rename = "CONSTELLATION")] + pub constellation: Option, + #[serde(rename = "OBJECT_TYPE")] + pub object_type: Option, + #[serde(rename = "TIME_SYSTEM")] + pub time_system: String, + #[serde(rename = "EPOCH_TZERO")] + pub epoch_tzero: schema_common::xml_schema_types::EpochType, + #[serde(rename = "OPS_STATUS")] + pub ops_status: Option, + #[serde(rename = "ORBIT_CATEGORY")] + pub orbit_category: Option, + #[serde(rename = "OCM_DATA_ELEMENTS")] + pub ocm_data_elements: Option, + #[serde(rename = "SCLK_OFFSET_AT_EPOCH")] + pub sclk_offset_at_epoch: Option, + #[serde(rename = "SCLK_SEC_PER_SI_SEC")] + pub sclk_sec_per_si_sec: Option, + #[serde(rename = "PREVIOUS_MESSAGE_EPOCH")] + pub previous_message_epoch: Option, + #[serde(rename = "NEXT_MESSAGE_EPOCH")] + pub next_message_epoch: Option, + #[serde(rename = "START_TIME")] + pub start_time: Option, + #[serde(rename = "STOP_TIME")] + pub stop_time: Option, + #[serde(rename = "TIME_SPAN")] + pub time_span: Option, + #[serde(rename = "TAIMUTC_AT_TZERO")] + pub taimutc_at_tzero: Option, + #[serde(rename = "NEXT_LEAP_EPOCH")] + pub next_leap_epoch: Option, + #[serde(rename = "NEXT_LEAP_TAIMUTC")] + pub next_leap_taimutc: Option, + #[serde(rename = "UT1MUTC_AT_TZERO")] + pub ut1mutc_at_tzero: Option, + #[serde(rename = "EOP_SOURCE")] + pub eop_source: Option, + #[serde(rename = "INTERP_METHOD_EOP")] + pub interp_method_eop: Option, + #[serde(rename = "CELESTIAL_SOURCE")] + pub celestial_source: Option, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OcmData - { - #[serde(rename = "traj")] pub traj_list : Vec < schema_common :: - xml_schema_types :: OcmTrajStateType >, #[serde(rename = "phys")] - pub phys : Option < schema_common :: xml_schema_types :: - OcmPhysicalDescriptionType >, #[serde(rename = "cov")] pub - cov_list : Vec < schema_common :: xml_schema_types :: - OcmCovarianceMatrixType >, #[serde(rename = "man")] pub man_list : - Vec < schema_common :: xml_schema_types :: - OcmManeuverParametersType >, #[serde(rename = "pert")] pub pert : - Option < schema_common :: xml_schema_types :: OcmPerturbationsType - >, #[serde(rename = "od")] pub od : Option < schema_common :: - xml_schema_types :: OcmOdParametersType >, - #[serde(rename = "user")] pub user : Option < schema_common :: - xml_schema_types :: UserDefinedType >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OcmData { + #[serde(rename = "traj")] + pub traj_list: Vec, + #[serde(rename = "phys")] + pub phys: Option, + #[serde(rename = "cov")] + pub cov_list: Vec, + #[serde(rename = "man")] + pub man_list: Vec, + #[serde(rename = "pert")] + pub pert: Option, + #[serde(rename = "od")] + pub od: Option, + #[serde(rename = "user")] + pub user: Option, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OcmTrajStateType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "TRAJ_ID")] pub traj_id : Option < String >, - #[serde(rename = "TRAJ_PREV_ID")] pub traj_prev_id : Option < - String >, #[serde(rename = "TRAJ_NEXT_ID")] pub traj_next_id : - Option < String >, #[serde(rename = "TRAJ_BASIS")] pub traj_basis - : Option < schema_common :: xml_schema_types :: TrajBasisType >, - #[serde(rename = "TRAJ_BASIS_ID")] pub traj_basis_id : Option < - String >, #[serde(rename = "INTERPOLATION")] pub interpolation : - Option < String >, #[serde(rename = "INTERPOLATION_DEGREE")] pub - interpolation_degree : Option < u64 >, - #[serde(rename = "PROPAGATOR")] pub propagator : Option < String - >, #[serde(rename = "CENTER_NAME")] pub center_name : String, - #[serde(rename = "TRAJ_REF_FRAME")] pub traj_ref_frame : String, - #[serde(rename = "TRAJ_FRAME_EPOCH")] pub traj_frame_epoch : - Option < schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "USEABLE_START_TIME")] pub useable_start_time : - Option < schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "USEABLE_STOP_TIME")] pub useable_stop_time : - Option < schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "ORB_REVNUM")] pub orb_revnum : Option < - schema_common :: xml_schema_types :: NonNegativeDouble >, - #[serde(rename = "ORB_REVNUM_BASIS")] pub orb_revnum_basis : - Option < schema_common :: xml_schema_types :: RevNumBasisType >, - #[serde(rename = "TRAJ_TYPE")] pub traj_type : String, - #[serde(rename = "ORB_AVERAGING")] pub orb_averaging : Option < - String >, #[serde(rename = "TRAJ_UNITS")] pub traj_units : Option - < String >, #[serde(rename = "trajLine")] pub traj_line_list : Vec - < String >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OcmTrajStateType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "TRAJ_ID")] + pub traj_id: Option, + #[serde(rename = "TRAJ_PREV_ID")] + pub traj_prev_id: Option, + #[serde(rename = "TRAJ_NEXT_ID")] + pub traj_next_id: Option, + #[serde(rename = "TRAJ_BASIS")] + pub traj_basis: Option, + #[serde(rename = "TRAJ_BASIS_ID")] + pub traj_basis_id: Option, + #[serde(rename = "INTERPOLATION")] + pub interpolation: Option, + #[serde(rename = "INTERPOLATION_DEGREE")] + pub interpolation_degree: Option, + #[serde(rename = "PROPAGATOR")] + pub propagator: Option, + #[serde(rename = "CENTER_NAME")] + pub center_name: String, + #[serde(rename = "TRAJ_REF_FRAME")] + pub traj_ref_frame: String, + #[serde(rename = "TRAJ_FRAME_EPOCH")] + pub traj_frame_epoch: Option, + #[serde(rename = "USEABLE_START_TIME")] + pub useable_start_time: Option, + #[serde(rename = "USEABLE_STOP_TIME")] + pub useable_stop_time: Option, + #[serde(rename = "ORB_REVNUM")] + pub orb_revnum: Option, + #[serde(rename = "ORB_REVNUM_BASIS")] + pub orb_revnum_basis: Option, + #[serde(rename = "TRAJ_TYPE")] + pub traj_type: String, + #[serde(rename = "ORB_AVERAGING")] + pub orb_averaging: Option, + #[serde(rename = "TRAJ_UNITS")] + pub traj_units: Option, + #[serde(rename = "trajLine")] + pub traj_line_list: Vec, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OcmPhysicalDescriptionType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "MANUFACTURER")] pub manufacturer : Option < - String >, #[serde(rename = "BUS_MODEL")] pub bus_model : Option < - String >, #[serde(rename = "DOCKED_WITH")] pub docked_with : - Option < String >, #[serde(rename = "DRAG_CONST_AREA")] pub - drag_const_area : Option < schema_common :: xml_schema_types :: - AreaType >, #[serde(rename = "DRAG_COEFF_NOM")] pub drag_coeff_nom - : Option < schema_common :: xml_schema_types :: PositiveDouble >, - #[serde(rename = "DRAG_UNCERTAINTY")] pub drag_uncertainty : - Option < schema_common :: xml_schema_types :: PercentageType >, - #[serde(rename = "INITIAL_WET_MASS")] pub initial_wet_mass : - Option < schema_common :: xml_schema_types :: MassType >, - #[serde(rename = "WET_MASS")] pub wet_mass : Option < - schema_common :: xml_schema_types :: MassType >, - #[serde(rename = "DRY_MASS")] pub dry_mass : Option < - schema_common :: xml_schema_types :: MassType >, - #[serde(rename = "OEB_PARENT_FRAME")] pub oeb_parent_frame : - Option < String >, #[serde(rename = "OEB_PARENT_FRAME_EPOCH")] pub - oeb_parent_frame_epoch : Option < schema_common :: - xml_schema_types :: EpochType >, #[serde(rename = "OEB_Q1")] pub - oeb_q1 : Option < f64 >, #[serde(rename = "OEB_Q2")] pub oeb_q2 : - Option < f64 >, #[serde(rename = "OEB_Q3")] pub oeb_q3 : Option < - f64 >, #[serde(rename = "OEB_QC")] pub oeb_qc : Option < f64 >, - #[serde(rename = "OEB_MAX")] pub oeb_max : Option < schema_common - :: xml_schema_types :: OcmLengthType >, - #[serde(rename = "OEB_INT")] pub oeb_int : Option < schema_common - :: xml_schema_types :: OcmLengthType >, - #[serde(rename = "OEB_MIN")] pub oeb_min : Option < schema_common - :: xml_schema_types :: OcmLengthType >, - #[serde(rename = "AREA_ALONG_OEB_MAX")] pub area_along_oeb_max : - Option < schema_common :: xml_schema_types :: AreaType >, - #[serde(rename = "AREA_ALONG_OEB_INT")] pub area_along_oeb_int : - Option < schema_common :: xml_schema_types :: AreaType >, - #[serde(rename = "AREA_ALONG_OEB_MIN")] pub area_along_oeb_min : - Option < schema_common :: xml_schema_types :: AreaType >, - #[serde(rename = "AREA_MIN_FOR_PC")] pub area_min_for_pc : Option - < schema_common :: xml_schema_types :: AreaType >, - #[serde(rename = "AREA_MAX_FOR_PC")] pub area_max_for_pc : Option - < schema_common :: xml_schema_types :: AreaType >, - #[serde(rename = "AREA_TYP_FOR_PC")] pub area_typ_for_pc : Option - < schema_common :: xml_schema_types :: AreaType >, - #[serde(rename = "RCS")] pub rcs : Option < schema_common :: - xml_schema_types :: AreaType >, #[serde(rename = "RCS_MIN")] pub - rcs_min : Option < schema_common :: xml_schema_types :: AreaType - >, #[serde(rename = "RCS_MAX")] pub rcs_max : Option < - schema_common :: xml_schema_types :: AreaType >, - #[serde(rename = "SRP_CONST_AREA")] pub srp_const_area : Option < - schema_common :: xml_schema_types :: AreaType >, - #[serde(rename = "SOLAR_RAD_COEFF")] pub solar_rad_coeff : Option - < f64 >, #[serde(rename = "SOLAR_RAD_UNCERTAINTY")] pub - solar_rad_uncertainty : Option < schema_common :: xml_schema_types - :: PercentageType >, #[serde(rename = "VM_ABSOLUTE")] pub - vm_absolute : Option < f64 >, #[serde(rename = "VM_APPARENT_MIN")] - pub vm_apparent_min : Option < f64 >, - #[serde(rename = "VM_APPARENT")] pub vm_apparent : Option < f64 >, - #[serde(rename = "VM_APPARENT_MAX")] pub vm_apparent_max : Option - < f64 >, #[serde(rename = "REFLECTANCE")] pub reflectance : Option - < schema_common :: xml_schema_types :: ProbabilityType >, - #[serde(rename = "ATT_CONTROL_MODE")] pub att_control_mode : - Option < String >, #[serde(rename = "ATT_ACTUATOR_TYPE")] pub - att_actuator_type : Option < String >, - #[serde(rename = "ATT_KNOWLEDGE")] pub att_knowledge : Option < - schema_common :: xml_schema_types :: AngleType >, - #[serde(rename = "ATT_CONTROL")] pub att_control : Option < - schema_common :: xml_schema_types :: AngleType >, - #[serde(rename = "ATT_POINTING")] pub att_pointing : Option < - schema_common :: xml_schema_types :: AngleType >, - #[serde(rename = "AVG_MANEUVER_FREQ")] pub avg_maneuver_freq : - Option < schema_common :: xml_schema_types :: ManeuverFreqType >, - #[serde(rename = "MAX_THRUST")] pub max_thrust : Option < - schema_common :: xml_schema_types :: ThrustType >, - #[serde(rename = "DV_BOL")] pub dv_bol : Option < schema_common :: - xml_schema_types :: VelocityType >, - #[serde(rename = "DV_REMAINING")] pub dv_remaining : Option < - schema_common :: xml_schema_types :: VelocityType >, - #[serde(rename = "IXX")] pub ixx : Option < schema_common :: - xml_schema_types :: MomentType >, #[serde(rename = "IYY")] pub iyy - : Option < schema_common :: xml_schema_types :: MomentType >, - #[serde(rename = "IZZ")] pub izz : Option < schema_common :: - xml_schema_types :: MomentType >, #[serde(rename = "IXY")] pub ixy - : Option < schema_common :: xml_schema_types :: MomentType >, - #[serde(rename = "IXZ")] pub ixz : Option < schema_common :: - xml_schema_types :: MomentType >, #[serde(rename = "IYZ")] pub iyz - : Option < schema_common :: xml_schema_types :: MomentType >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OcmPhysicalDescriptionType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "MANUFACTURER")] + pub manufacturer: Option, + #[serde(rename = "BUS_MODEL")] + pub bus_model: Option, + #[serde(rename = "DOCKED_WITH")] + pub docked_with: Option, + #[serde(rename = "DRAG_CONST_AREA")] + pub drag_const_area: Option, + #[serde(rename = "DRAG_COEFF_NOM")] + pub drag_coeff_nom: Option, + #[serde(rename = "DRAG_UNCERTAINTY")] + pub drag_uncertainty: Option, + #[serde(rename = "INITIAL_WET_MASS")] + pub initial_wet_mass: Option, + #[serde(rename = "WET_MASS")] + pub wet_mass: Option, + #[serde(rename = "DRY_MASS")] + pub dry_mass: Option, + #[serde(rename = "OEB_PARENT_FRAME")] + pub oeb_parent_frame: Option, + #[serde(rename = "OEB_PARENT_FRAME_EPOCH")] + pub oeb_parent_frame_epoch: Option, + #[serde(rename = "OEB_Q1")] + pub oeb_q1: Option, + #[serde(rename = "OEB_Q2")] + pub oeb_q2: Option, + #[serde(rename = "OEB_Q3")] + pub oeb_q3: Option, + #[serde(rename = "OEB_QC")] + pub oeb_qc: Option, + #[serde(rename = "OEB_MAX")] + pub oeb_max: Option, + #[serde(rename = "OEB_INT")] + pub oeb_int: Option, + #[serde(rename = "OEB_MIN")] + pub oeb_min: Option, + #[serde(rename = "AREA_ALONG_OEB_MAX")] + pub area_along_oeb_max: Option, + #[serde(rename = "AREA_ALONG_OEB_INT")] + pub area_along_oeb_int: Option, + #[serde(rename = "AREA_ALONG_OEB_MIN")] + pub area_along_oeb_min: Option, + #[serde(rename = "AREA_MIN_FOR_PC")] + pub area_min_for_pc: Option, + #[serde(rename = "AREA_MAX_FOR_PC")] + pub area_max_for_pc: Option, + #[serde(rename = "AREA_TYP_FOR_PC")] + pub area_typ_for_pc: Option, + #[serde(rename = "RCS")] + pub rcs: Option, + #[serde(rename = "RCS_MIN")] + pub rcs_min: Option, + #[serde(rename = "RCS_MAX")] + pub rcs_max: Option, + #[serde(rename = "SRP_CONST_AREA")] + pub srp_const_area: Option, + #[serde(rename = "SOLAR_RAD_COEFF")] + pub solar_rad_coeff: Option, + #[serde(rename = "SOLAR_RAD_UNCERTAINTY")] + pub solar_rad_uncertainty: Option, + #[serde(rename = "VM_ABSOLUTE")] + pub vm_absolute: Option, + #[serde(rename = "VM_APPARENT_MIN")] + pub vm_apparent_min: Option, + #[serde(rename = "VM_APPARENT")] + pub vm_apparent: Option, + #[serde(rename = "VM_APPARENT_MAX")] + pub vm_apparent_max: Option, + #[serde(rename = "REFLECTANCE")] + pub reflectance: Option, + #[serde(rename = "ATT_CONTROL_MODE")] + pub att_control_mode: Option, + #[serde(rename = "ATT_ACTUATOR_TYPE")] + pub att_actuator_type: Option, + #[serde(rename = "ATT_KNOWLEDGE")] + pub att_knowledge: Option, + #[serde(rename = "ATT_CONTROL")] + pub att_control: Option, + #[serde(rename = "ATT_POINTING")] + pub att_pointing: Option, + #[serde(rename = "AVG_MANEUVER_FREQ")] + pub avg_maneuver_freq: Option, + #[serde(rename = "MAX_THRUST")] + pub max_thrust: Option, + #[serde(rename = "DV_BOL")] + pub dv_bol: Option, + #[serde(rename = "DV_REMAINING")] + pub dv_remaining: Option, + #[serde(rename = "IXX")] + pub ixx: Option, + #[serde(rename = "IYY")] + pub iyy: Option, + #[serde(rename = "IZZ")] + pub izz: Option, + #[serde(rename = "IXY")] + pub ixy: Option, + #[serde(rename = "IXZ")] + pub ixz: Option, + #[serde(rename = "IYZ")] + pub iyz: Option, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OcmCovarianceMatrixType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "COV_ID")] pub cov_id : Option < String >, - #[serde(rename = "COV_PREV_ID")] pub cov_prev_id : Option < String - >, #[serde(rename = "COV_NEXT_ID")] pub cov_next_id : Option < - String >, #[serde(rename = "COV_BASIS")] pub cov_basis : Option < - schema_common :: xml_schema_types :: CovBasisType >, - #[serde(rename = "COV_BASIS_ID")] pub cov_basis_id : Option < - String >, #[serde(rename = "COV_REF_FRAME")] pub cov_ref_frame : - String, #[serde(rename = "COV_FRAME_EPOCH")] pub cov_frame_epoch : - Option < schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "COV_SCALE_MIN")] pub cov_scale_min : Option < - f64 >, #[serde(rename = "COV_SCALE_MAX")] pub cov_scale_max : - Option < f64 >, #[serde(rename = "COV_CONFIDENCE")] pub - cov_confidence : Option < schema_common :: xml_schema_types :: - PercentageType >, #[serde(rename = "COV_TYPE")] pub cov_type : - String, #[serde(rename = "COV_ORDERING")] pub cov_ordering : - schema_common :: xml_schema_types :: CovOrderType, - #[serde(rename = "COV_UNITS")] pub cov_units : Option < String >, - #[serde(rename = "covLine")] pub cov_line_list : Vec < String >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OcmCovarianceMatrixType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "COV_ID")] + pub cov_id: Option, + #[serde(rename = "COV_PREV_ID")] + pub cov_prev_id: Option, + #[serde(rename = "COV_NEXT_ID")] + pub cov_next_id: Option, + #[serde(rename = "COV_BASIS")] + pub cov_basis: Option, + #[serde(rename = "COV_BASIS_ID")] + pub cov_basis_id: Option, + #[serde(rename = "COV_REF_FRAME")] + pub cov_ref_frame: String, + #[serde(rename = "COV_FRAME_EPOCH")] + pub cov_frame_epoch: Option, + #[serde(rename = "COV_SCALE_MIN")] + pub cov_scale_min: Option, + #[serde(rename = "COV_SCALE_MAX")] + pub cov_scale_max: Option, + #[serde(rename = "COV_CONFIDENCE")] + pub cov_confidence: Option, + #[serde(rename = "COV_TYPE")] + pub cov_type: String, + #[serde(rename = "COV_ORDERING")] + pub cov_ordering: schema_common::xml_schema_types::CovOrderType, + #[serde(rename = "COV_UNITS")] + pub cov_units: Option, + #[serde(rename = "covLine")] + pub cov_line_list: Vec, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OcmManeuverParametersType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "MAN_ID")] pub man_id : String, - #[serde(rename = "MAN_PREV_ID")] pub man_prev_id : Option < String - >, #[serde(rename = "MAN_NEXT_ID")] pub man_next_id : Option < - String >, #[serde(rename = "MAN_BASIS")] pub man_basis : Option < - schema_common :: xml_schema_types :: ManBasisType >, - #[serde(rename = "MAN_BASIS_ID")] pub man_basis_id : Option < - String >, #[serde(rename = "MAN_DEVICE_ID")] pub man_device_id : - String, #[serde(rename = "MAN_PREV_EPOCH")] pub man_prev_epoch : - Option < schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "MAN_NEXT_EPOCH")] pub man_next_epoch : Option < - schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "MAN_PURPOSE")] pub man_purpose : Option < String - >, #[serde(rename = "MAN_PRED_SOURCE")] pub man_pred_source : - Option < String >, #[serde(rename = "MAN_REF_FRAME")] pub - man_ref_frame : String, #[serde(rename = "MAN_FRAME_EPOCH")] pub - man_frame_epoch : Option < schema_common :: xml_schema_types :: - EpochType >, #[serde(rename = "GRAV_ASSIST_NAME")] pub - grav_assist_name : Option < String >, #[serde(rename = "DC_TYPE")] - pub dc_type : schema_common :: xml_schema_types :: ManDcType, - #[serde(rename = "DC_WIN_OPEN")] pub dc_win_open : Option < - schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "DC_WIN_CLOSE")] pub dc_win_close : Option < - schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "DC_MIN_CYCLES")] pub dc_min_cycles : Option < - u64 >, #[serde(rename = "DC_MAX_CYCLES")] pub dc_max_cycles : - Option < u64 >, #[serde(rename = "DC_EXEC_START")] pub - dc_exec_start : Option < schema_common :: xml_schema_types :: - EpochType >, #[serde(rename = "DC_EXEC_STOP")] pub dc_exec_stop : - Option < schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "DC_REF_TIME")] pub dc_ref_time : Option < - schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "DC_TIME_PULSE_DURATION")] pub - dc_time_pulse_duration : Option < schema_common :: - xml_schema_types :: DurationType >, - #[serde(rename = "DC_TIME_PULSE_PERIOD")] pub dc_time_pulse_period - : Option < schema_common :: xml_schema_types :: DurationType >, - #[serde(rename = "DC_REF_DIR")] pub dc_ref_dir : Option < - schema_common :: xml_schema_types :: Vec3Double >, - #[serde(rename = "DC_BODY_FRAME")] pub dc_body_frame : Option < - String >, #[serde(rename = "DC_BODY_TRIGGER")] pub dc_body_trigger - : Option < schema_common :: xml_schema_types :: Vec3Double >, - #[serde(rename = "DC_PA_START_ANGLE")] pub dc_pa_start_angle : - Option < schema_common :: xml_schema_types :: AngleType >, - #[serde(rename = "DC_PA_STOP_ANGLE")] pub dc_pa_stop_angle : - Option < schema_common :: xml_schema_types :: AngleType >, - #[serde(rename = "MAN_COMPOSITION")] pub man_composition : String, - #[serde(rename = "MAN_UNITS")] pub man_units : Option < String >, - #[serde(rename = "manLine")] pub man_line_list : Vec < String >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OcmManeuverParametersType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "MAN_ID")] + pub man_id: String, + #[serde(rename = "MAN_PREV_ID")] + pub man_prev_id: Option, + #[serde(rename = "MAN_NEXT_ID")] + pub man_next_id: Option, + #[serde(rename = "MAN_BASIS")] + pub man_basis: Option, + #[serde(rename = "MAN_BASIS_ID")] + pub man_basis_id: Option, + #[serde(rename = "MAN_DEVICE_ID")] + pub man_device_id: String, + #[serde(rename = "MAN_PREV_EPOCH")] + pub man_prev_epoch: Option, + #[serde(rename = "MAN_NEXT_EPOCH")] + pub man_next_epoch: Option, + #[serde(rename = "MAN_PURPOSE")] + pub man_purpose: Option, + #[serde(rename = "MAN_PRED_SOURCE")] + pub man_pred_source: Option, + #[serde(rename = "MAN_REF_FRAME")] + pub man_ref_frame: String, + #[serde(rename = "MAN_FRAME_EPOCH")] + pub man_frame_epoch: Option, + #[serde(rename = "GRAV_ASSIST_NAME")] + pub grav_assist_name: Option, + #[serde(rename = "DC_TYPE")] + pub dc_type: schema_common::xml_schema_types::ManDcType, + #[serde(rename = "DC_WIN_OPEN")] + pub dc_win_open: Option, + #[serde(rename = "DC_WIN_CLOSE")] + pub dc_win_close: Option, + #[serde(rename = "DC_MIN_CYCLES")] + pub dc_min_cycles: Option, + #[serde(rename = "DC_MAX_CYCLES")] + pub dc_max_cycles: Option, + #[serde(rename = "DC_EXEC_START")] + pub dc_exec_start: Option, + #[serde(rename = "DC_EXEC_STOP")] + pub dc_exec_stop: Option, + #[serde(rename = "DC_REF_TIME")] + pub dc_ref_time: Option, + #[serde(rename = "DC_TIME_PULSE_DURATION")] + pub dc_time_pulse_duration: Option, + #[serde(rename = "DC_TIME_PULSE_PERIOD")] + pub dc_time_pulse_period: Option, + #[serde(rename = "DC_REF_DIR")] + pub dc_ref_dir: Option, + #[serde(rename = "DC_BODY_FRAME")] + pub dc_body_frame: Option, + #[serde(rename = "DC_BODY_TRIGGER")] + pub dc_body_trigger: Option, + #[serde(rename = "DC_PA_START_ANGLE")] + pub dc_pa_start_angle: Option, + #[serde(rename = "DC_PA_STOP_ANGLE")] + pub dc_pa_stop_angle: Option, + #[serde(rename = "MAN_COMPOSITION")] + pub man_composition: String, + #[serde(rename = "MAN_UNITS")] + pub man_units: Option, + #[serde(rename = "manLine")] + pub man_line_list: Vec, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OcmPerturbationsType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "ATMOSPHERIC_MODEL")] pub atmospheric_model : - Option < String >, #[serde(rename = "GRAVITY_MODEL")] pub - gravity_model : Option < String >, - #[serde(rename = "EQUATORIAL_RADIUS")] pub equatorial_radius : - Option < schema_common :: xml_schema_types :: PositionType >, - #[serde(rename = "GM")] pub gm : Option < schema_common :: - xml_schema_types :: GmType >, - #[serde(rename = "N_BODY_PERTURBATIONS")] pub n_body_perturbations - : Option < String >, #[serde(rename = "CENTRAL_BODY_ROTATION")] - pub central_body_rotation : Option < schema_common :: - xml_schema_types :: AngleRateType >, - #[serde(rename = "OBLATE_FLATTENING")] pub oblate_flattening : - Option < schema_common :: xml_schema_types :: PositiveDouble >, - #[serde(rename = "OCEAN_TIDES_MODEL")] pub ocean_tides_model : - Option < String >, #[serde(rename = "SOLID_TIDES_MODEL")] pub - solid_tides_model : Option < String >, - #[serde(rename = "REDUCTION_THEORY")] pub reduction_theory : - Option < String >, #[serde(rename = "ALBEDO_MODEL")] pub - albedo_model : Option < String >, - #[serde(rename = "ALBEDO_GRID_SIZE")] pub albedo_grid_size : - Option < u64 >, #[serde(rename = "SHADOW_MODEL")] pub shadow_model - : Option < String >, #[serde(rename = "SHADOW_BODIES")] pub - shadow_bodies : Option < String >, #[serde(rename = "SRP_MODEL")] - pub srp_model : Option < String >, - #[serde(rename = "SW_DATA_SOURCE")] pub sw_data_source : Option < - String >, #[serde(rename = "SW_DATA_EPOCH")] pub sw_data_epoch : - Option < schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "SW_INTERP_METHOD")] pub sw_interp_method : - Option < String >, #[serde(rename = "FIXED_GEOMAG_KP")] pub - fixed_geomag_kp : Option < schema_common :: xml_schema_types :: - GeomagType >, #[serde(rename = "FIXED_GEOMAG_AP")] pub - fixed_geomag_ap : Option < schema_common :: xml_schema_types :: - GeomagType >, #[serde(rename = "FIXED_GEOMAG_DST")] pub - fixed_geomag_dst : Option < schema_common :: xml_schema_types :: - GeomagType >, #[serde(rename = "FIXED_F10P7")] pub fixed_f10p7 : - Option < schema_common :: xml_schema_types :: SolarFluxType >, - #[serde(rename = "FIXED_F10P7_MEAN")] pub fixed_f10p7_mean : - Option < schema_common :: xml_schema_types :: SolarFluxType >, - #[serde(rename = "FIXED_M10P7")] pub fixed_m10p7 : Option < - schema_common :: xml_schema_types :: SolarFluxType >, - #[serde(rename = "FIXED_M10P7_MEAN")] pub fixed_m10p7_mean : - Option < schema_common :: xml_schema_types :: SolarFluxType >, - #[serde(rename = "FIXED_S10P7")] pub fixed_s10p7 : Option < - schema_common :: xml_schema_types :: SolarFluxType >, - #[serde(rename = "FIXED_S10P7_MEAN")] pub fixed_s10p7_mean : - Option < schema_common :: xml_schema_types :: SolarFluxType >, - #[serde(rename = "FIXED_Y10P7")] pub fixed_y10p7 : Option < - schema_common :: xml_schema_types :: SolarFluxType >, - #[serde(rename = "FIXED_Y10P7_MEAN")] pub fixed_y10p7_mean : - Option < schema_common :: xml_schema_types :: SolarFluxType >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OcmPerturbationsType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "ATMOSPHERIC_MODEL")] + pub atmospheric_model: Option, + #[serde(rename = "GRAVITY_MODEL")] + pub gravity_model: Option, + #[serde(rename = "EQUATORIAL_RADIUS")] + pub equatorial_radius: Option, + #[serde(rename = "GM")] + pub gm: Option, + #[serde(rename = "N_BODY_PERTURBATIONS")] + pub n_body_perturbations: Option, + #[serde(rename = "CENTRAL_BODY_ROTATION")] + pub central_body_rotation: Option, + #[serde(rename = "OBLATE_FLATTENING")] + pub oblate_flattening: Option, + #[serde(rename = "OCEAN_TIDES_MODEL")] + pub ocean_tides_model: Option, + #[serde(rename = "SOLID_TIDES_MODEL")] + pub solid_tides_model: Option, + #[serde(rename = "REDUCTION_THEORY")] + pub reduction_theory: Option, + #[serde(rename = "ALBEDO_MODEL")] + pub albedo_model: Option, + #[serde(rename = "ALBEDO_GRID_SIZE")] + pub albedo_grid_size: Option, + #[serde(rename = "SHADOW_MODEL")] + pub shadow_model: Option, + #[serde(rename = "SHADOW_BODIES")] + pub shadow_bodies: Option, + #[serde(rename = "SRP_MODEL")] + pub srp_model: Option, + #[serde(rename = "SW_DATA_SOURCE")] + pub sw_data_source: Option, + #[serde(rename = "SW_DATA_EPOCH")] + pub sw_data_epoch: Option, + #[serde(rename = "SW_INTERP_METHOD")] + pub sw_interp_method: Option, + #[serde(rename = "FIXED_GEOMAG_KP")] + pub fixed_geomag_kp: Option, + #[serde(rename = "FIXED_GEOMAG_AP")] + pub fixed_geomag_ap: Option, + #[serde(rename = "FIXED_GEOMAG_DST")] + pub fixed_geomag_dst: Option, + #[serde(rename = "FIXED_F10P7")] + pub fixed_f10p7: Option, + #[serde(rename = "FIXED_F10P7_MEAN")] + pub fixed_f10p7_mean: Option, + #[serde(rename = "FIXED_M10P7")] + pub fixed_m10p7: Option, + #[serde(rename = "FIXED_M10P7_MEAN")] + pub fixed_m10p7_mean: Option, + #[serde(rename = "FIXED_S10P7")] + pub fixed_s10p7: Option, + #[serde(rename = "FIXED_S10P7_MEAN")] + pub fixed_s10p7_mean: Option, + #[serde(rename = "FIXED_Y10P7")] + pub fixed_y10p7: Option, + #[serde(rename = "FIXED_Y10P7_MEAN")] + pub fixed_y10p7_mean: Option, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OcmOdParametersType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "OD_ID")] pub od_id : String, - #[serde(rename = "OD_PREV_ID")] pub od_prev_id : Option < String - >, #[serde(rename = "OD_METHOD")] pub od_method : String, - #[serde(rename = "OD_EPOCH")] pub od_epoch : schema_common :: - xml_schema_types :: EpochType, - #[serde(rename = "DAYS_SINCE_FIRST_OBS")] pub days_since_first_obs - : Option < schema_common :: xml_schema_types :: OcmDayIntervalType - >, #[serde(rename = "DAYS_SINCE_LAST_OBS")] pub - days_since_last_obs : Option < schema_common :: xml_schema_types - :: OcmDayIntervalType >, #[serde(rename = "RECOMMENDED_OD_SPAN")] - pub recommended_od_span : Option < schema_common :: - xml_schema_types :: OcmDayIntervalType >, - #[serde(rename = "ACTUAL_OD_SPAN")] pub actual_od_span : Option < - schema_common :: xml_schema_types :: OcmDayIntervalType >, - #[serde(rename = "OBS_AVAILABLE")] pub obs_available : Option < - u64 >, #[serde(rename = "OBS_USED")] pub obs_used : Option < u64 - >, #[serde(rename = "TRACKS_AVAILABLE")] pub tracks_available : - Option < u64 >, #[serde(rename = "TRACKS_USED")] pub tracks_used : - Option < u64 >, #[serde(rename = "MAXIMUM_OBS_GAP")] pub - maximum_obs_gap : Option < schema_common :: xml_schema_types :: - OcmDayIntervalType >, #[serde(rename = "OD_EPOCH_EIGMAJ")] pub - od_epoch_eigmaj : Option < schema_common :: xml_schema_types :: - OcmLengthType >, #[serde(rename = "OD_EPOCH_EIGINT")] pub - od_epoch_eigint : Option < schema_common :: xml_schema_types :: - OcmLengthType >, #[serde(rename = "OD_EPOCH_EIGMIN")] pub - od_epoch_eigmin : Option < schema_common :: xml_schema_types :: - OcmLengthType >, #[serde(rename = "OD_MAX_PRED_EIGMAJ")] pub - od_max_pred_eigmaj : Option < schema_common :: xml_schema_types :: - OcmLengthType >, #[serde(rename = "OD_MIN_PRED_EIGMIN")] pub - od_min_pred_eigmin : Option < schema_common :: xml_schema_types :: - OcmLengthType >, #[serde(rename = "OD_CONFIDENCE")] pub - od_confidence : Option < schema_common :: xml_schema_types :: - PercentageType >, #[serde(rename = "GDOP")] pub gdop : Option < - schema_common :: xml_schema_types :: NonNegativeDouble >, - #[serde(rename = "SOLVE_N")] pub solve_n : Option < u64 >, - #[serde(rename = "SOLVE_STATES")] pub solve_states : Option < - String >, #[serde(rename = "CONSIDER_N")] pub consider_n : Option - < u64 >, #[serde(rename = "CONSIDER_PARAMS")] pub consider_params - : Option < String >, #[serde(rename = "SEDR")] pub sedr : Option < - schema_common :: xml_schema_types :: WkgType >, - #[serde(rename = "SENSORS_N")] pub sensors_n : Option < u64 >, - #[serde(rename = "SENSORS")] pub sensors : Option < String >, - #[serde(rename = "WEIGHTED_RMS")] pub weighted_rms : Option < - schema_common :: xml_schema_types :: NonNegativeDouble >, - #[serde(rename = "DATA_TYPES")] pub data_types : Option < String - >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OcmOdParametersType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "OD_ID")] + pub od_id: String, + #[serde(rename = "OD_PREV_ID")] + pub od_prev_id: Option, + #[serde(rename = "OD_METHOD")] + pub od_method: String, + #[serde(rename = "OD_EPOCH")] + pub od_epoch: schema_common::xml_schema_types::EpochType, + #[serde(rename = "DAYS_SINCE_FIRST_OBS")] + pub days_since_first_obs: Option, + #[serde(rename = "DAYS_SINCE_LAST_OBS")] + pub days_since_last_obs: Option, + #[serde(rename = "RECOMMENDED_OD_SPAN")] + pub recommended_od_span: Option, + #[serde(rename = "ACTUAL_OD_SPAN")] + pub actual_od_span: Option, + #[serde(rename = "OBS_AVAILABLE")] + pub obs_available: Option, + #[serde(rename = "OBS_USED")] + pub obs_used: Option, + #[serde(rename = "TRACKS_AVAILABLE")] + pub tracks_available: Option, + #[serde(rename = "TRACKS_USED")] + pub tracks_used: Option, + #[serde(rename = "MAXIMUM_OBS_GAP")] + pub maximum_obs_gap: Option, + #[serde(rename = "OD_EPOCH_EIGMAJ")] + pub od_epoch_eigmaj: Option, + #[serde(rename = "OD_EPOCH_EIGINT")] + pub od_epoch_eigint: Option, + #[serde(rename = "OD_EPOCH_EIGMIN")] + pub od_epoch_eigmin: Option, + #[serde(rename = "OD_MAX_PRED_EIGMAJ")] + pub od_max_pred_eigmaj: Option, + #[serde(rename = "OD_MIN_PRED_EIGMIN")] + pub od_min_pred_eigmin: Option, + #[serde(rename = "OD_CONFIDENCE")] + pub od_confidence: Option, + #[serde(rename = "GDOP")] + pub gdop: Option, + #[serde(rename = "SOLVE_N")] + pub solve_n: Option, + #[serde(rename = "SOLVE_STATES")] + pub solve_states: Option, + #[serde(rename = "CONSIDER_N")] + pub consider_n: Option, + #[serde(rename = "CONSIDER_PARAMS")] + pub consider_params: Option, + #[serde(rename = "SEDR")] + pub sedr: Option, + #[serde(rename = "SENSORS_N")] + pub sensors_n: Option, + #[serde(rename = "SENSORS")] + pub sensors: Option, + #[serde(rename = "WEIGHTED_RMS")] + pub weighted_rms: Option, + #[serde(rename = "DATA_TYPES")] + pub data_types: Option, } } -} pub use schema_ocm :: * ; \ No newline at end of file +} +pub use schema_ocm::*; diff --git a/crates/lox_core/src/odm/oem.rs b/crates/lox_core/src/odm/oem.rs index 501472ce..2b65982f 100644 --- a/crates/lox_core/src/odm/oem.rs +++ b/crates/lox_core/src/odm/oem.rs @@ -1,61 +1,76 @@ -mod schema_oem -{ - pub mod xml_schema_types - { - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OemType - { - #[serde(rename = "header")] pub header : schema_common :: - xml_schema_types :: OdmHeader, #[serde(rename = "body")] pub body - : schema_common :: xml_schema_types :: OemBody, - #[serde(rename = "@id")] pub id : String, - #[serde(rename = "@version")] pub version : String, +mod schema_oem { + pub mod xml_schema_types { + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OemType { + #[serde(rename = "header")] + pub header: schema_common::xml_schema_types::OdmHeader, + #[serde(rename = "body")] + pub body: schema_common::xml_schema_types::OemBody, + #[serde(rename = "@id")] + pub id: String, + #[serde(rename = "@version")] + pub version: String, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OemBody - { - #[serde(rename = "segment")] pub segment_list : Vec < - schema_common :: xml_schema_types :: OemSegment >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OemBody { + #[serde(rename = "segment")] + pub segment_list: Vec, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OemSegment - { - #[serde(rename = "metadata")] pub metadata : schema_common :: - xml_schema_types :: OemMetadata, #[serde(rename = "data")] pub - data : schema_common :: xml_schema_types :: OemData, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OemSegment { + #[serde(rename = "metadata")] + pub metadata: schema_common::xml_schema_types::OemMetadata, + #[serde(rename = "data")] + pub data: schema_common::xml_schema_types::OemData, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OemMetadata - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "OBJECT_NAME")] pub object_name : String, - #[serde(rename = "OBJECT_ID")] pub object_id : String, - #[serde(rename = "CENTER_NAME")] pub center_name : String, - #[serde(rename = "REF_FRAME")] pub ref_frame : String, - #[serde(rename = "REF_FRAME_EPOCH")] pub ref_frame_epoch : Option - < schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "TIME_SYSTEM")] pub time_system : String, - #[serde(rename = "START_TIME")] pub start_time : schema_common :: - xml_schema_types :: EpochType, - #[serde(rename = "USEABLE_START_TIME")] pub useable_start_time : - Option < schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "USEABLE_STOP_TIME")] pub useable_stop_time : - Option < schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "STOP_TIME")] pub stop_time : schema_common :: - xml_schema_types :: EpochType, #[serde(rename = "INTERPOLATION")] - pub interpolation : Option < String >, - #[serde(rename = "INTERPOLATION_DEGREE")] pub interpolation_degree - : Option < u64 >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OemMetadata { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "OBJECT_NAME")] + pub object_name: String, + #[serde(rename = "OBJECT_ID")] + pub object_id: String, + #[serde(rename = "CENTER_NAME")] + pub center_name: String, + #[serde(rename = "REF_FRAME")] + pub ref_frame: String, + #[serde(rename = "REF_FRAME_EPOCH")] + pub ref_frame_epoch: Option, + #[serde(rename = "TIME_SYSTEM")] + pub time_system: String, + #[serde(rename = "START_TIME")] + pub start_time: schema_common::xml_schema_types::EpochType, + #[serde(rename = "USEABLE_START_TIME")] + pub useable_start_time: Option, + #[serde(rename = "USEABLE_STOP_TIME")] + pub useable_stop_time: Option, + #[serde(rename = "STOP_TIME")] + pub stop_time: schema_common::xml_schema_types::EpochType, + #[serde(rename = "INTERPOLATION")] + pub interpolation: Option, + #[serde(rename = "INTERPOLATION_DEGREE")] + pub interpolation_degree: Option, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OemData - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "stateVector")] pub state_vector_list : Vec < - schema_common :: xml_schema_types :: StateVectorAccType >, - #[serde(rename = "covarianceMatrix")] pub covariance_matrix_list : - Vec < schema_common :: xml_schema_types :: OemCovarianceMatrixType - >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OemData { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "stateVector")] + pub state_vector_list: Vec, + #[serde(rename = "covarianceMatrix")] + pub covariance_matrix_list: + Vec, } } -} pub use schema_oem :: * ; \ No newline at end of file +} +pub use schema_oem::*; diff --git a/crates/lox_core/src/odm/omm.rs b/crates/lox_core/src/odm/omm.rs index 859bf178..fdf49c05 100644 --- a/crates/lox_core/src/odm/omm.rs +++ b/crates/lox_core/src/odm/omm.rs @@ -1,156 +1,198 @@ -mod schema_omm -{ - pub mod xml_schema_types - { - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - BStarUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - BTermUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - AgomUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - ElementSetNoType(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - RevUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - DRevUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - DdRevUnits(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct - SpacewarnType(#[serde(rename = "$text")] std :: string :: String) ; - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OmmType - { - #[serde(rename = "header")] pub header : schema_common :: - xml_schema_types :: OdmHeader, #[serde(rename = "body")] pub body - : schema_common :: xml_schema_types :: OmmBody, - #[serde(rename = "@id")] pub id : String, - #[serde(rename = "@version")] pub version : String, +mod schema_omm { + pub mod xml_schema_types { + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct BStarUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct BTermUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AgomUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct ElementSetNoType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct RevUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct DRevUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct DdRevUnits(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct SpacewarnType(#[serde(rename = "$text")] std::string::String); + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OmmType { + #[serde(rename = "header")] + pub header: schema_common::xml_schema_types::OdmHeader, + #[serde(rename = "body")] + pub body: schema_common::xml_schema_types::OmmBody, + #[serde(rename = "@id")] + pub id: String, + #[serde(rename = "@version")] + pub version: String, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OmmBody - { - #[serde(rename = "segment")] pub segment : schema_common :: - xml_schema_types :: OmmSegment, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OmmBody { + #[serde(rename = "segment")] + pub segment: schema_common::xml_schema_types::OmmSegment, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OmmSegment - { - #[serde(rename = "metadata")] pub metadata : schema_common :: - xml_schema_types :: OmmMetadata, #[serde(rename = "data")] pub - data : schema_common :: xml_schema_types :: OmmData, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OmmSegment { + #[serde(rename = "metadata")] + pub metadata: schema_common::xml_schema_types::OmmMetadata, + #[serde(rename = "data")] + pub data: schema_common::xml_schema_types::OmmData, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OmmMetadata - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "OBJECT_NAME")] pub object_name : String, - #[serde(rename = "OBJECT_ID")] pub object_id : String, - #[serde(rename = "CENTER_NAME")] pub center_name : String, - #[serde(rename = "REF_FRAME")] pub ref_frame : String, - #[serde(rename = "REF_FRAME_EPOCH")] pub ref_frame_epoch : Option - < schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "TIME_SYSTEM")] pub time_system : String, - #[serde(rename = "MEAN_ELEMENT_THEORY")] pub mean_element_theory : - String, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OmmMetadata { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "OBJECT_NAME")] + pub object_name: String, + #[serde(rename = "OBJECT_ID")] + pub object_id: String, + #[serde(rename = "CENTER_NAME")] + pub center_name: String, + #[serde(rename = "REF_FRAME")] + pub ref_frame: String, + #[serde(rename = "REF_FRAME_EPOCH")] + pub ref_frame_epoch: Option, + #[serde(rename = "TIME_SYSTEM")] + pub time_system: String, + #[serde(rename = "MEAN_ELEMENT_THEORY")] + pub mean_element_theory: String, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OmmData - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "meanElements")] pub mean_elements : - schema_common :: xml_schema_types :: MeanElementsType, - #[serde(rename = "spacecraftParameters")] pub - spacecraft_parameters : Option < schema_common :: xml_schema_types - :: SpacecraftParametersType >, #[serde(rename = "tleParameters")] - pub tle_parameters : Option < schema_common :: xml_schema_types :: - TleParametersType >, #[serde(rename = "covarianceMatrix")] pub - covariance_matrix : Option < schema_common :: xml_schema_types :: - OpmCovarianceMatrixType >, - #[serde(rename = "userDefinedParameters")] pub - user_defined_parameters : Option < schema_common :: - xml_schema_types :: UserDefinedType >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OmmData { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "meanElements")] + pub mean_elements: schema_common::xml_schema_types::MeanElementsType, + #[serde(rename = "spacecraftParameters")] + pub spacecraft_parameters: + Option, + #[serde(rename = "tleParameters")] + pub tle_parameters: Option, + #[serde(rename = "covarianceMatrix")] + pub covariance_matrix: Option, + #[serde(rename = "userDefinedParameters")] + pub user_defined_parameters: Option, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct MeanElementsType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "EPOCH")] pub epoch : schema_common :: - xml_schema_types :: EpochType, #[serde(rename = "ECCENTRICITY")] - pub eccentricity : schema_common :: xml_schema_types :: - NonNegativeDouble, #[serde(rename = "INCLINATION")] pub - inclination : schema_common :: xml_schema_types :: - InclinationType, #[serde(rename = "RA_OF_ASC_NODE")] pub - ra_of_asc_node : schema_common :: xml_schema_types :: AngleType, - #[serde(rename = "ARG_OF_PERICENTER")] pub arg_of_pericenter : - schema_common :: xml_schema_types :: AngleType, - #[serde(rename = "MEAN_ANOMALY")] pub mean_anomaly : schema_common - :: xml_schema_types :: AngleType, #[serde(rename = "GM")] pub gm : - Option < schema_common :: xml_schema_types :: GmType >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct MeanElementsType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "EPOCH")] + pub epoch: schema_common::xml_schema_types::EpochType, + #[serde(rename = "ECCENTRICITY")] + pub eccentricity: schema_common::xml_schema_types::NonNegativeDouble, + #[serde(rename = "INCLINATION")] + pub inclination: schema_common::xml_schema_types::InclinationType, + #[serde(rename = "RA_OF_ASC_NODE")] + pub ra_of_asc_node: schema_common::xml_schema_types::AngleType, + #[serde(rename = "ARG_OF_PERICENTER")] + pub arg_of_pericenter: schema_common::xml_schema_types::AngleType, + #[serde(rename = "MEAN_ANOMALY")] + pub mean_anomaly: schema_common::xml_schema_types::AngleType, + #[serde(rename = "GM")] + pub gm: Option, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct TleParametersType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "EPHEMERIS_TYPE")] pub ephemeris_type : Option < - i32 >, #[serde(rename = "CLASSIFICATION_TYPE")] pub - classification_type : Option < String >, - #[serde(rename = "NORAD_CAT_ID")] pub norad_cat_id : Option < i32 - >, #[serde(rename = "ELEMENT_SET_NO")] pub element_set_no : Option - < schema_common :: xml_schema_types :: ElementSetNoType >, - #[serde(rename = "REV_AT_EPOCH")] pub rev_at_epoch : Option < u64 - >, #[serde(rename = "MEAN_MOTION_DOT")] pub mean_motion_dot : - schema_common :: xml_schema_types :: DRevType, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct TleParametersType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "EPHEMERIS_TYPE")] + pub ephemeris_type: Option, + #[serde(rename = "CLASSIFICATION_TYPE")] + pub classification_type: Option, + #[serde(rename = "NORAD_CAT_ID")] + pub norad_cat_id: Option, + #[serde(rename = "ELEMENT_SET_NO")] + pub element_set_no: Option, + #[serde(rename = "REV_AT_EPOCH")] + pub rev_at_epoch: Option, + #[serde(rename = "MEAN_MOTION_DOT")] + pub mean_motion_dot: schema_common::xml_schema_types::DRevType, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct BStarType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < schema_common :: - xml_schema_types :: BStarUnits >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct BStarType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct BTermType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < schema_common :: - xml_schema_types :: BTermUnits >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct BTermType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct AgomType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < schema_common :: - xml_schema_types :: AgomUnits >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct AgomType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct RevType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < schema_common :: - xml_schema_types :: RevUnits >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct RevType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct DRevType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < schema_common :: - xml_schema_types :: DRevUnits >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct DRevType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct DdRevType - { - #[serde(rename = "$text")] pub base : f64, - #[serde(rename = "@units")] pub units : Option < schema_common :: - xml_schema_types :: DdRevUnits >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct DdRevType { + #[serde(rename = "$text")] + pub base: f64, + #[serde(rename = "@units")] + pub units: Option, } } -} pub use schema_omm :: * ; \ No newline at end of file +} +pub use schema_omm::*; diff --git a/crates/lox_core/src/odm/opm.rs b/crates/lox_core/src/odm/opm.rs index 4ecb63be..7145dd30 100644 --- a/crates/lox_core/src/odm/opm.rs +++ b/crates/lox_core/src/odm/opm.rs @@ -1,94 +1,113 @@ -mod schema_opm -{ - pub mod xml_schema_types - { - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OpmType - { - #[serde(rename = "header")] pub header : schema_common :: - xml_schema_types :: OdmHeader, #[serde(rename = "body")] pub body - : schema_common :: xml_schema_types :: OpmBody, - #[serde(rename = "@id")] pub id : String, - #[serde(rename = "@version")] pub version : String, +mod schema_opm { + pub mod xml_schema_types { + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OpmType { + #[serde(rename = "header")] + pub header: schema_common::xml_schema_types::OdmHeader, + #[serde(rename = "body")] + pub body: schema_common::xml_schema_types::OpmBody, + #[serde(rename = "@id")] + pub id: String, + #[serde(rename = "@version")] + pub version: String, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OpmBody - { - #[serde(rename = "segment")] pub segment : schema_common :: - xml_schema_types :: OpmSegment, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OpmBody { + #[serde(rename = "segment")] + pub segment: schema_common::xml_schema_types::OpmSegment, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OpmSegment - { - #[serde(rename = "metadata")] pub metadata : schema_common :: - xml_schema_types :: OpmMetadata, #[serde(rename = "data")] pub - data : schema_common :: xml_schema_types :: OpmData, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OpmSegment { + #[serde(rename = "metadata")] + pub metadata: schema_common::xml_schema_types::OpmMetadata, + #[serde(rename = "data")] + pub data: schema_common::xml_schema_types::OpmData, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OpmMetadata - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "OBJECT_NAME")] pub object_name : String, - #[serde(rename = "OBJECT_ID")] pub object_id : String, - #[serde(rename = "CENTER_NAME")] pub center_name : String, - #[serde(rename = "REF_FRAME")] pub ref_frame : String, - #[serde(rename = "REF_FRAME_EPOCH")] pub ref_frame_epoch : Option - < schema_common :: xml_schema_types :: EpochType >, - #[serde(rename = "TIME_SYSTEM")] pub time_system : String, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OpmMetadata { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "OBJECT_NAME")] + pub object_name: String, + #[serde(rename = "OBJECT_ID")] + pub object_id: String, + #[serde(rename = "CENTER_NAME")] + pub center_name: String, + #[serde(rename = "REF_FRAME")] + pub ref_frame: String, + #[serde(rename = "REF_FRAME_EPOCH")] + pub ref_frame_epoch: Option, + #[serde(rename = "TIME_SYSTEM")] + pub time_system: String, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct OpmData - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "stateVector")] pub state_vector : schema_common - :: xml_schema_types :: StateVectorType, - #[serde(rename = "keplerianElements")] pub keplerian_elements : - Option < schema_common :: xml_schema_types :: - KeplerianElementsType >, #[serde(rename = "spacecraftParameters")] - pub spacecraft_parameters : Option < schema_common :: - xml_schema_types :: SpacecraftParametersType >, - #[serde(rename = "covarianceMatrix")] pub covariance_matrix : - Option < schema_common :: xml_schema_types :: - OpmCovarianceMatrixType >, #[serde(rename = "maneuverParameters")] - pub maneuver_parameters_list : Vec < schema_common :: - xml_schema_types :: ManeuverParametersType >, - #[serde(rename = "userDefinedParameters")] pub - user_defined_parameters : Option < schema_common :: - xml_schema_types :: UserDefinedType >, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct OpmData { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "stateVector")] + pub state_vector: schema_common::xml_schema_types::StateVectorType, + #[serde(rename = "keplerianElements")] + pub keplerian_elements: Option, + #[serde(rename = "spacecraftParameters")] + pub spacecraft_parameters: + Option, + #[serde(rename = "covarianceMatrix")] + pub covariance_matrix: Option, + #[serde(rename = "maneuverParameters")] + pub maneuver_parameters_list: + Vec, + #[serde(rename = "userDefinedParameters")] + pub user_defined_parameters: Option, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct KeplerianElementsType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "SEMI_MAJOR_AXIS")] pub semi_major_axis : - schema_common :: xml_schema_types :: DistanceType, - #[serde(rename = "ECCENTRICITY")] pub eccentricity : schema_common - :: xml_schema_types :: NonNegativeDouble, - #[serde(rename = "INCLINATION")] pub inclination : schema_common - :: xml_schema_types :: InclinationType, - #[serde(rename = "RA_OF_ASC_NODE")] pub ra_of_asc_node : - schema_common :: xml_schema_types :: AngleType, - #[serde(rename = "ARG_OF_PERICENTER")] pub arg_of_pericenter : - schema_common :: xml_schema_types :: AngleType, - #[serde(rename = "GM")] pub gm : schema_common :: xml_schema_types - :: GmType, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct KeplerianElementsType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "SEMI_MAJOR_AXIS")] + pub semi_major_axis: schema_common::xml_schema_types::DistanceType, + #[serde(rename = "ECCENTRICITY")] + pub eccentricity: schema_common::xml_schema_types::NonNegativeDouble, + #[serde(rename = "INCLINATION")] + pub inclination: schema_common::xml_schema_types::InclinationType, + #[serde(rename = "RA_OF_ASC_NODE")] + pub ra_of_asc_node: schema_common::xml_schema_types::AngleType, + #[serde(rename = "ARG_OF_PERICENTER")] + pub arg_of_pericenter: schema_common::xml_schema_types::AngleType, + #[serde(rename = "GM")] + pub gm: schema_common::xml_schema_types::GmType, } - #[derive(Clone, Debug, Default, PartialEq, serde :: Deserialize, serde - :: Serialize)] #[serde(default)] pub struct ManeuverParametersType - { - #[serde(rename = "COMMENT")] pub comment_list : Vec < String >, - #[serde(rename = "MAN_EPOCH_IGNITION")] pub man_epoch_ignition : - schema_common :: xml_schema_types :: EpochType, - #[serde(rename = "MAN_DURATION")] pub man_duration : schema_common - :: xml_schema_types :: DurationType, - #[serde(rename = "MAN_DELTA_MASS")] pub man_delta_mass : - schema_common :: xml_schema_types :: DeltamassType, - #[serde(rename = "MAN_REF_FRAME")] pub man_ref_frame : String, - #[serde(rename = "MAN_DV_1")] pub man_dv_1 : schema_common :: - xml_schema_types :: VelocityType, #[serde(rename = "MAN_DV_2")] - pub man_dv_2 : schema_common :: xml_schema_types :: VelocityType, - #[serde(rename = "MAN_DV_3")] pub man_dv_3 : schema_common :: - xml_schema_types :: VelocityType, + + #[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)] + #[serde(default)] + pub struct ManeuverParametersType { + #[serde(rename = "COMMENT")] + pub comment_list: Vec, + #[serde(rename = "MAN_EPOCH_IGNITION")] + pub man_epoch_ignition: schema_common::xml_schema_types::EpochType, + #[serde(rename = "MAN_DURATION")] + pub man_duration: schema_common::xml_schema_types::DurationType, + #[serde(rename = "MAN_DELTA_MASS")] + pub man_delta_mass: schema_common::xml_schema_types::DeltamassType, + #[serde(rename = "MAN_REF_FRAME")] + pub man_ref_frame: String, + #[serde(rename = "MAN_DV_1")] + pub man_dv_1: schema_common::xml_schema_types::VelocityType, + #[serde(rename = "MAN_DV_2")] + pub man_dv_2: schema_common::xml_schema_types::VelocityType, + #[serde(rename = "MAN_DV_3")] + pub man_dv_3: schema_common::xml_schema_types::VelocityType, } } -} pub use schema_opm :: * ; \ No newline at end of file +} +pub use schema_opm::*;