diff --git a/Cargo.lock b/Cargo.lock index 782a43f8..40643bcc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -555,6 +555,7 @@ dependencies = [ "lox-time", "numpy", "pyo3", + "rstest", "sgp4", "thiserror", ] diff --git a/crates/lox-ephem/src/spk/api.rs b/crates/lox-ephem/src/spk/api.rs index b06e0c33..863c4b44 100644 --- a/crates/lox-ephem/src/spk/api.rs +++ b/crates/lox-ephem/src/spk/api.rs @@ -49,7 +49,7 @@ impl Spk { array: &'a SpkType2Array, initial_epoch: Epoch, epoch: Epoch, - ) -> Result<(&Vec, f64), DafSpkError> { + ) -> Result<(&'a Vec, f64), DafSpkError> { let seconds_from_record_start = epoch - initial_epoch; let intlen = array.intlen as f64; @@ -81,7 +81,7 @@ impl Spk { &'a self, epoch: Epoch, segment: &'a SpkSegment, - ) -> Result<(Vec, &Vec), DafSpkError> { + ) -> Result<(Vec, &'a Vec), DafSpkError> { let (coefficients, record) = match &segment.data { super::parser::SpkArray::Type2(array) => { let (record, fraction) = self.find_record(array, segment.initial_epoch, epoch)?; diff --git a/crates/lox-orbits/Cargo.toml b/crates/lox-orbits/Cargo.toml index dd04018d..30b82ee6 100644 --- a/crates/lox-orbits/Cargo.toml +++ b/crates/lox-orbits/Cargo.toml @@ -26,6 +26,7 @@ thiserror.workspace = true [dev-dependencies] pyo3 = { workspace = true, features = ["auto-initialize"] } +rstest.workspace = true [features] python = ["dep:pyo3", "dep:numpy", "lox-bodies/python", "lox-time/python"] diff --git a/crates/lox-orbits/src/analysis.rs b/crates/lox-orbits/src/analysis.rs index a44be92e..eab3c736 100644 --- a/crates/lox-orbits/src/analysis.rs +++ b/crates/lox-orbits/src/analysis.rs @@ -7,7 +7,7 @@ use std::f64::consts::PI; * License, v. 2.0. If a copy of the MPL was not distributed with this * file, you can obtain one at https://mozilla.org/MPL/2.0/. */ -use lox_bodies::{RotationalElements, Spheroid}; +use lox_bodies::{Origin, RotationalElements, Spheroid}; use lox_math::roots::Brent; use lox_math::series::{Series, SeriesError}; use lox_math::types::units::Radians; @@ -21,7 +21,6 @@ use thiserror::Error; use crate::events::{find_windows, Window}; use crate::frames::{BodyFixed, FrameTransformationProvider, Icrf, Topocentric, TryToFrame}; use crate::ground::GroundLocation; -use crate::origins::{CoordinateOrigin, Origin}; use crate::trajectories::Trajectory; #[derive(Debug, Clone, Error, PartialEq)] diff --git a/crates/lox-orbits/src/elements.rs b/crates/lox-orbits/src/elements.rs index 68e21618..6dc52f29 100644 --- a/crates/lox-orbits/src/elements.rs +++ b/crates/lox-orbits/src/elements.rs @@ -16,7 +16,6 @@ use lox_time::deltas::TimeDelta; use lox_time::TimeLike; use crate::frames::{CoordinateSystem, Icrf}; -use crate::origins::CoordinateOrigin; use crate::states::{State, ToCartesian}; pub trait ToKeplerian { @@ -122,12 +121,6 @@ where } } -impl CoordinateOrigin for Keplerian { - fn origin(&self) -> O { - self.origin.clone() - } -} - impl CoordinateSystem for Keplerian { fn reference_frame(&self) -> Icrf { Icrf diff --git a/crates/lox-orbits/src/ensembles.rs b/crates/lox-orbits/src/ensembles.rs index 4f7bc3c5..66004b58 100644 --- a/crates/lox-orbits/src/ensembles.rs +++ b/crates/lox-orbits/src/ensembles.rs @@ -7,8 +7,8 @@ */ use crate::frames::ReferenceFrame; -use crate::origins::Origin; use crate::trajectories::Trajectory; +use lox_bodies::Origin; use lox_time::TimeLike; use std::collections::HashMap; diff --git a/crates/lox-orbits/src/frames.rs b/crates/lox-orbits/src/frames.rs index a502e0d0..41f432c7 100644 --- a/crates/lox-orbits/src/frames.rs +++ b/crates/lox-orbits/src/frames.rs @@ -6,20 +6,22 @@ * file, you can obtain one at https://mozilla.org/MPL/2.0/. */ -use std::convert::Infallible; use std::f64::consts::FRAC_PI_2; +use std::{convert::Infallible, str::FromStr}; use crate::ground::GroundLocation; use glam::{DMat3, DVec3}; -use lox_bodies::{RotationalElements, Spheroid}; +use lox_bodies::{DynOrigin, MaybeRotationalElements, Origin, RotationalElements, Spheroid}; use lox_math::types::units::Seconds; use lox_time::transformations::OffsetProvider; +use thiserror::Error; use crate::rotations::Rotation; pub trait ReferenceFrame { fn name(&self) -> String; fn abbreviation(&self) -> String; + fn is_rotating(&self) -> bool; } pub trait CoordinateSystem { @@ -54,6 +56,61 @@ impl ReferenceFrame for Icrf { fn abbreviation(&self) -> String { "ICRF".to_string() } + + fn is_rotating(&self) -> bool { + false + } +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq, Ord, PartialOrd)] +pub struct Cirf; + +impl ReferenceFrame for Cirf { + fn name(&self) -> String { + "Celestial Intermediate Reference Frame".to_string() + } + + fn abbreviation(&self) -> String { + "CIRF".to_string() + } + + fn is_rotating(&self) -> bool { + false + } +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq, Ord, PartialOrd)] +pub struct Tirf; + +impl ReferenceFrame for Tirf { + fn name(&self) -> String { + "Terrestrial Intermediate Reference Frame".to_string() + } + + fn abbreviation(&self) -> String { + "TIRF".to_string() + } + + fn is_rotating(&self) -> bool { + true + } +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq, Ord, PartialOrd)] +pub struct Itrf; + +impl ReferenceFrame for Itrf { + fn name(&self) -> String { + "International Terrestrial Reference Frame".to_string() + } + + fn abbreviation(&self) -> String { + "ITRF".to_string() + } + + fn is_rotating(&self) -> bool { + true + } } #[derive(Clone, Copy, Debug, PartialEq, Eq, Ord, PartialOrd)] @@ -86,6 +143,10 @@ impl ReferenceFrame for BodyFixed { let body = self.0.name().replace([' ', '-'], "_").to_uppercase(); format!("IAU_{}", body) } + + fn is_rotating(&self) -> bool { + true + } } #[derive(Clone, Debug)] @@ -108,12 +169,94 @@ impl Topocentric { } } +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum DynFrame { + Icrf, + Cirf, + Tirf, + Itrf, + BodyFixed(DynOrigin), +} + +impl ReferenceFrame for DynFrame { + fn name(&self) -> String { + match self { + DynFrame::Icrf => Icrf.name(), + DynFrame::Cirf => Cirf.name(), + DynFrame::Tirf => Tirf.name(), + DynFrame::Itrf => Itrf.name(), + DynFrame::BodyFixed(dyn_origin) => { + let body = dyn_origin.name(); + match body { + "Sun" | "Moon" => format!("IAU Body-Fixed Reference Frame for the {}", body), + _ => format!("IAU Body-Fixed Reference Frame for {}", body), + } + } + } + } + + fn abbreviation(&self) -> String { + match self { + DynFrame::Icrf => Icrf.abbreviation(), + DynFrame::Cirf => Cirf.abbreviation(), + DynFrame::Tirf => Tirf.abbreviation(), + DynFrame::Itrf => Itrf.abbreviation(), + DynFrame::BodyFixed(dyn_origin) => { + let body = dyn_origin.name().replace([' ', '-'], "_").to_uppercase(); + format!("IAU_{}", body) + } + } + } + + fn is_rotating(&self) -> bool { + match self { + DynFrame::Icrf | DynFrame::Cirf => false, + DynFrame::Tirf | DynFrame::Itrf | DynFrame::BodyFixed(_) => true, + } + } +} + +fn parse_iau_frame(s: &str) -> Option { + let (prefix, origin) = s.split_once("_")?; + if prefix.to_lowercase() != "iau" { + return None; + } + let origin: DynOrigin = origin.parse().ok()?; + let _ = origin.maybe_rotational_elements(0.0)?; + Some(DynFrame::BodyFixed(origin)) +} + +#[derive(Clone, Debug, Error, PartialEq, Eq)] +#[error("no frame with name '{0}' is known")] +pub struct UnknownFrameError(String); + +impl FromStr for DynFrame { + type Err = UnknownFrameError; + + fn from_str(s: &str) -> Result { + match s { + "icrf" | "ICRF" => Ok(DynFrame::Icrf), + "cirf" | "CIRF" => Ok(DynFrame::Cirf), + "tirf" | "TIRF" => Ok(DynFrame::Tirf), + "itrf" | "ITRF" => Ok(DynFrame::Itrf), + _ => { + if let Some(frame) = parse_iau_frame(s) { + Ok(frame) + } else { + Err(UnknownFrameError(s.to_owned())) + } + } + } + } +} + #[cfg(test)] mod tests { use super::*; use lox_bodies::Earth; use lox_math::assert_close; use lox_math::is_close::IsClose; + use rstest::rstest; #[test] fn test_topocentric() { @@ -134,4 +277,14 @@ mod tests { assert_close!(r.y_axis, y_axis); assert_close!(r.z_axis, z_axis); } + + #[rstest] + #[case("IAU_EARTH", Some(DynFrame::BodyFixed(DynOrigin::Earth)))] + #[case("FOO_EARTH", None)] + #[case("IAU_RUPERT", None)] + #[case("IAU_SYCORAX", None)] + fn test_parse_iau_frame(#[case] name: &str, #[case] exp: Option) { + let act = parse_iau_frame(name); + assert_eq!(act, exp) + } } diff --git a/crates/lox-orbits/src/ground.rs b/crates/lox-orbits/src/ground.rs index 5dd55fed..9cb75c54 100644 --- a/crates/lox-orbits/src/ground.rs +++ b/crates/lox-orbits/src/ground.rs @@ -18,7 +18,6 @@ use lox_time::transformations::TryToScale; use lox_time::TimeLike; use crate::frames::{BodyFixed, CoordinateSystem, FrameTransformationProvider, Icrf, TryToFrame}; -use crate::origins::CoordinateOrigin; use crate::propagators::Propagator; use crate::states::State; use crate::trajectories::TrajectoryError; @@ -136,12 +135,6 @@ impl GroundLocation { } } -impl CoordinateOrigin for GroundLocation { - fn origin(&self) -> O { - self.body.clone() - } -} - #[derive(Debug, Error)] pub enum GroundPropagatorError { #[error("frame transformation error: {0}")] @@ -166,16 +159,6 @@ where } } -impl CoordinateOrigin for GroundPropagator -where - O: Spheroid + Clone, - P: FrameTransformationProvider, -{ - fn origin(&self) -> O { - self.location.body.clone() - } -} - impl CoordinateSystem for GroundPropagator where O: Spheroid, diff --git a/crates/lox-orbits/src/lib.rs b/crates/lox-orbits/src/lib.rs index de51c21e..d0226a85 100644 --- a/crates/lox-orbits/src/lib.rs +++ b/crates/lox-orbits/src/lib.rs @@ -15,7 +15,6 @@ pub mod ensembles; pub mod events; pub mod frames; pub mod ground; -pub mod origins; pub mod propagators; #[cfg(feature = "python")] pub mod python; diff --git a/crates/lox-orbits/src/origins.rs b/crates/lox-orbits/src/origins.rs deleted file mode 100644 index dc45aa40..00000000 --- a/crates/lox-orbits/src/origins.rs +++ /dev/null @@ -1,9 +0,0 @@ -use lox_bodies::Origin; - -pub trait Origin {} - -impl Origin for U {} - -pub trait CoordinateOrigin { - fn origin(&self) -> T; -} diff --git a/crates/lox-orbits/src/propagators.rs b/crates/lox-orbits/src/propagators.rs index 59fcf23d..9afd6f0a 100644 --- a/crates/lox-orbits/src/propagators.rs +++ b/crates/lox-orbits/src/propagators.rs @@ -1,7 +1,8 @@ +use lox_bodies::Origin; use lox_time::TimeLike; use crate::trajectories::TrajectoryError; -use crate::{frames::ReferenceFrame, origins::Origin, states::State, trajectories::Trajectory}; +use crate::{frames::ReferenceFrame, states::State, trajectories::Trajectory}; pub mod semi_analytical; pub mod sgp4; diff --git a/crates/lox-orbits/src/propagators/semi_analytical.rs b/crates/lox-orbits/src/propagators/semi_analytical.rs index f398b253..4744f2d7 100644 --- a/crates/lox-orbits/src/propagators/semi_analytical.rs +++ b/crates/lox-orbits/src/propagators/semi_analytical.rs @@ -12,7 +12,6 @@ use lox_bodies::PointMass; use lox_time::TimeLike; use crate::frames::{CoordinateSystem, Icrf}; -use crate::origins::CoordinateOrigin; use crate::propagators::{stumpff, Propagator}; use crate::states::State; use crate::trajectories::TrajectoryError; @@ -31,16 +30,6 @@ pub struct Vallado { max_iter: i32, } -impl CoordinateOrigin for Vallado -where - T: TimeLike, - O: PointMass + Clone, -{ - fn origin(&self) -> O { - self.initial_state.origin() - } -} - impl CoordinateSystem for Vallado where T: TimeLike, diff --git a/crates/lox-orbits/src/python.rs b/crates/lox-orbits/src/python.rs index 08e39d03..d8cf448c 100644 --- a/crates/lox-orbits/src/python.rs +++ b/crates/lox-orbits/src/python.rs @@ -20,7 +20,6 @@ use pyo3::{ }; use sgp4::Elements; -use lox_bodies::python::PyPlanet; use lox_bodies::*; use lox_math::roots::Brent; use lox_time::deltas::TimeDelta; @@ -30,14 +29,12 @@ use lox_time::python::ut1::{PyNoOpOffsetProvider, PyUt1Provider}; use lox_time::time_scales::Tai; use lox_time::transformations::TryToScale; use lox_time::{python::time::PyTime, ut1::DeltaUt1Tai, Time}; -use python::PyBody; use crate::analysis::{ElevationMask, ElevationMaskError}; use crate::elements::{Keplerian, ToKeplerian}; use crate::events::{Event, FindEventError, Window}; use crate::frames::{BodyFixed, CoordinateSystem, Icrf, ReferenceFrame, Topocentric, TryToFrame}; use crate::ground::{GroundLocation, GroundPropagator, GroundPropagatorError, Observables}; -use crate::origins::CoordinateOrigin; use crate::propagators::semi_analytical::{Vallado, ValladoError}; use crate::propagators::sgp4::{Sgp4, Sgp4Error}; use crate::propagators::Propagator; @@ -49,8 +46,6 @@ use crate::{ trajectories::{Trajectory, TrajectoryError}, }; -mod generated; - impl From for PyErr { fn from(err: TrajectoryTransformationError) -> Self { // FIXME: wrong error type @@ -118,189 +113,7 @@ pub fn find_windows( #[pyclass(name = "Frame", module = "lox_space", frozen)] #[pyo3(eq)] #[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd)] -pub enum PyFrame { - Icrf, - Sun, - Mercury, - Venus, - Earth, - Mars, - Jupiter, - Saturn, - Uranus, - Neptune, - Pluto, - Moon, - Phobos, - Deimos, - Io, - Europa, - Ganymede, - Callisto, - Amalthea, - Himalia, - Elara, - Pasiphae, - Sinope, - Lysithea, - Carme, - Ananke, - Leda, - Thebe, - Adrastea, - Metis, - Callirrhoe, - Themisto, - Magaclite, - Taygete, - Chaldene, - Harpalyke, - Kalyke, - Iocaste, - Erinome, - Isonoe, - Praxidike, - Autonoe, - Thyone, - Hermippe, - Aitne, - Eurydome, - Euanthe, - Euporie, - Orthosie, - Sponde, - Kale, - Pasithee, - Hegemone, - Mneme, - Aoede, - Thelxinoe, - Arche, - Kallichore, - Helike, - Carpo, - Eukelade, - Cyllene, - Kore, - Herse, - Dia, - Mimas, - Enceladus, - Tethys, - Dione, - Rhea, - Titan, - Hyperion, - Iapetus, - Phoebe, - Janus, - Epimetheus, - Helene, - Telesto, - Calypso, - Atlas, - Prometheus, - Pandora, - Pan, - Ymir, - Paaliaq, - Tarvos, - Ijiraq, - Suttungr, - Kiviuq, - Mundilfari, - Albiorix, - Skathi, - Erriapus, - Siarnaq, - Thrymr, - Narvi, - Methone, - Pallene, - Polydeuces, - Daphnis, - Aegir, - Bebhionn, - Bergelmir, - Bestla, - Farbauti, - Fenrir, - Fornjot, - Hati, - Hyrrokkin, - Kari, - Loge, - Skoll, - Surtur, - Anthe, - Jarnsaxa, - Greip, - Tarqeq, - Aegaeon, - Ariel, - Umbriel, - Titania, - Oberon, - Miranda, - Cordelia, - Ophelia, - Bianca, - Cressida, - Desdemona, - Juliet, - Portia, - Rosalind, - Belinda, - Puck, - Caliban, - Sycorax, - Prospero, - Setebos, - Stephano, - Trinculo, - Francisco, - Margaret, - Ferdinand, - Perdita, - Mab, - Cupid, - Triton, - Nereid, - Naiad, - Thalassa, - Despina, - Galatea, - Larissa, - Proteus, - Halimede, - Psamathe, - Sao, - Laomedeia, - Neso, - Charon, - Nix, - Hydra, - Kerberos, - Styx, - Gaspra, - Ida, - Dactyl, - Ceres, - Pallas, - Vesta, - Psyche, - Lutetia, - Kleopatra, - Eros, - Davida, - Mathilde, - Steins, - Braille, - WilsonHarrington, - Toutatis, - Itokawa, - Bennu, -} +pub struct PyFrame(DynFrame); #[pymethods] impl PyFrame { diff --git a/crates/lox-orbits/src/python/.gitkeep b/crates/lox-orbits/src/python/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/crates/lox-orbits/src/python/generated.rs b/crates/lox-orbits/src/python/generated.rs deleted file mode 100644 index f1e43232..00000000 --- a/crates/lox-orbits/src/python/generated.rs +++ /dev/null @@ -1,7814 +0,0 @@ -/* - * Copyright (c) 2024. Helge Eichhorn and the LOX contributors - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, you can obtain one at https://mozilla.org/MPL/2.0/. - */ - -// Auto-generated by `lox-gen`. Do not edit! - -use crate::frames::{ - BodyFixed, CoordinateSystem, FrameTransformationProvider, Icrf, ReferenceFrame, TryToFrame, -}; -use crate::python::{PyFrame, PyState}; -use crate::states::State; -use lox_bodies::python::PyBody; -use lox_bodies::*; -use lox_time::python::time::PyTime; -use lox_time::python::ut1::{PyDeltaUt1Provider, PyNoOpOffsetProvider, PyUt1Provider}; -use pyo3::exceptions::PyValueError; -use pyo3::{Bound, PyErr, PyResult}; -use std::str::FromStr; -impl TryToFrame for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State; - type Error = T::Error; - fn try_to_frame( - &self, - frame: Icrf, - provider: &T, - ) -> Result, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => Ok(self.0.with_frame(frame)), - PyFrame::Sun => self - .0 - .with_frame(BodyFixed(Sun)) - .try_to_frame(frame, provider), - PyFrame::Mercury => self - .0 - .with_frame(BodyFixed(Mercury)) - .try_to_frame(frame, provider), - PyFrame::Venus => self - .0 - .with_frame(BodyFixed(Venus)) - .try_to_frame(frame, provider), - PyFrame::Earth => self - .0 - .with_frame(BodyFixed(Earth)) - .try_to_frame(frame, provider), - PyFrame::Mars => self - .0 - .with_frame(BodyFixed(Mars)) - .try_to_frame(frame, provider), - PyFrame::Jupiter => self - .0 - .with_frame(BodyFixed(Jupiter)) - .try_to_frame(frame, provider), - PyFrame::Saturn => self - .0 - .with_frame(BodyFixed(Saturn)) - .try_to_frame(frame, provider), - PyFrame::Uranus => self - .0 - .with_frame(BodyFixed(Uranus)) - .try_to_frame(frame, provider), - PyFrame::Neptune => self - .0 - .with_frame(BodyFixed(Neptune)) - .try_to_frame(frame, provider), - PyFrame::Pluto => self - .0 - .with_frame(BodyFixed(Pluto)) - .try_to_frame(frame, provider), - PyFrame::Moon => self - .0 - .with_frame(BodyFixed(Moon)) - .try_to_frame(frame, provider), - PyFrame::Phobos => self - .0 - .with_frame(BodyFixed(Phobos)) - .try_to_frame(frame, provider), - PyFrame::Deimos => self - .0 - .with_frame(BodyFixed(Deimos)) - .try_to_frame(frame, provider), - PyFrame::Io => self - .0 - .with_frame(BodyFixed(Io)) - .try_to_frame(frame, provider), - PyFrame::Europa => self - .0 - .with_frame(BodyFixed(Europa)) - .try_to_frame(frame, provider), - PyFrame::Ganymede => self - .0 - .with_frame(BodyFixed(Ganymede)) - .try_to_frame(frame, provider), - PyFrame::Callisto => self - .0 - .with_frame(BodyFixed(Callisto)) - .try_to_frame(frame, provider), - PyFrame::Amalthea => self - .0 - .with_frame(BodyFixed(Amalthea)) - .try_to_frame(frame, provider), - PyFrame::Himalia => self - .0 - .with_frame(BodyFixed(Himalia)) - .try_to_frame(frame, provider), - PyFrame::Elara => self - .0 - .with_frame(BodyFixed(Elara)) - .try_to_frame(frame, provider), - PyFrame::Pasiphae => self - .0 - .with_frame(BodyFixed(Pasiphae)) - .try_to_frame(frame, provider), - PyFrame::Sinope => self - .0 - .with_frame(BodyFixed(Sinope)) - .try_to_frame(frame, provider), - PyFrame::Lysithea => self - .0 - .with_frame(BodyFixed(Lysithea)) - .try_to_frame(frame, provider), - PyFrame::Carme => self - .0 - .with_frame(BodyFixed(Carme)) - .try_to_frame(frame, provider), - PyFrame::Ananke => self - .0 - .with_frame(BodyFixed(Ananke)) - .try_to_frame(frame, provider), - PyFrame::Leda => self - .0 - .with_frame(BodyFixed(Leda)) - .try_to_frame(frame, provider), - PyFrame::Thebe => self - .0 - .with_frame(BodyFixed(Thebe)) - .try_to_frame(frame, provider), - PyFrame::Adrastea => self - .0 - .with_frame(BodyFixed(Adrastea)) - .try_to_frame(frame, provider), - PyFrame::Metis => self - .0 - .with_frame(BodyFixed(Metis)) - .try_to_frame(frame, provider), - PyFrame::Callirrhoe => self - .0 - .with_frame(BodyFixed(Callirrhoe)) - .try_to_frame(frame, provider), - PyFrame::Themisto => self - .0 - .with_frame(BodyFixed(Themisto)) - .try_to_frame(frame, provider), - PyFrame::Magaclite => self - .0 - .with_frame(BodyFixed(Magaclite)) - .try_to_frame(frame, provider), - PyFrame::Taygete => self - .0 - .with_frame(BodyFixed(Taygete)) - .try_to_frame(frame, provider), - PyFrame::Chaldene => self - .0 - .with_frame(BodyFixed(Chaldene)) - .try_to_frame(frame, provider), - PyFrame::Harpalyke => self - .0 - .with_frame(BodyFixed(Harpalyke)) - .try_to_frame(frame, provider), - PyFrame::Kalyke => self - .0 - .with_frame(BodyFixed(Kalyke)) - .try_to_frame(frame, provider), - PyFrame::Iocaste => self - .0 - .with_frame(BodyFixed(Iocaste)) - .try_to_frame(frame, provider), - PyFrame::Erinome => self - .0 - .with_frame(BodyFixed(Erinome)) - .try_to_frame(frame, provider), - PyFrame::Isonoe => self - .0 - .with_frame(BodyFixed(Isonoe)) - .try_to_frame(frame, provider), - PyFrame::Praxidike => self - .0 - .with_frame(BodyFixed(Praxidike)) - .try_to_frame(frame, provider), - PyFrame::Autonoe => self - .0 - .with_frame(BodyFixed(Autonoe)) - .try_to_frame(frame, provider), - PyFrame::Thyone => self - .0 - .with_frame(BodyFixed(Thyone)) - .try_to_frame(frame, provider), - PyFrame::Hermippe => self - .0 - .with_frame(BodyFixed(Hermippe)) - .try_to_frame(frame, provider), - PyFrame::Aitne => self - .0 - .with_frame(BodyFixed(Aitne)) - .try_to_frame(frame, provider), - PyFrame::Eurydome => self - .0 - .with_frame(BodyFixed(Eurydome)) - .try_to_frame(frame, provider), - PyFrame::Euanthe => self - .0 - .with_frame(BodyFixed(Euanthe)) - .try_to_frame(frame, provider), - PyFrame::Euporie => self - .0 - .with_frame(BodyFixed(Euporie)) - .try_to_frame(frame, provider), - PyFrame::Orthosie => self - .0 - .with_frame(BodyFixed(Orthosie)) - .try_to_frame(frame, provider), - PyFrame::Sponde => self - .0 - .with_frame(BodyFixed(Sponde)) - .try_to_frame(frame, provider), - PyFrame::Kale => self - .0 - .with_frame(BodyFixed(Kale)) - .try_to_frame(frame, provider), - PyFrame::Pasithee => self - .0 - .with_frame(BodyFixed(Pasithee)) - .try_to_frame(frame, provider), - PyFrame::Hegemone => self - .0 - .with_frame(BodyFixed(Hegemone)) - .try_to_frame(frame, provider), - PyFrame::Mneme => self - .0 - .with_frame(BodyFixed(Mneme)) - .try_to_frame(frame, provider), - PyFrame::Aoede => self - .0 - .with_frame(BodyFixed(Aoede)) - .try_to_frame(frame, provider), - PyFrame::Thelxinoe => self - .0 - .with_frame(BodyFixed(Thelxinoe)) - .try_to_frame(frame, provider), - PyFrame::Arche => self - .0 - .with_frame(BodyFixed(Arche)) - .try_to_frame(frame, provider), - PyFrame::Kallichore => self - .0 - .with_frame(BodyFixed(Kallichore)) - .try_to_frame(frame, provider), - PyFrame::Helike => self - .0 - .with_frame(BodyFixed(Helike)) - .try_to_frame(frame, provider), - PyFrame::Carpo => self - .0 - .with_frame(BodyFixed(Carpo)) - .try_to_frame(frame, provider), - PyFrame::Eukelade => self - .0 - .with_frame(BodyFixed(Eukelade)) - .try_to_frame(frame, provider), - PyFrame::Cyllene => self - .0 - .with_frame(BodyFixed(Cyllene)) - .try_to_frame(frame, provider), - PyFrame::Kore => self - .0 - .with_frame(BodyFixed(Kore)) - .try_to_frame(frame, provider), - PyFrame::Herse => self - .0 - .with_frame(BodyFixed(Herse)) - .try_to_frame(frame, provider), - PyFrame::Dia => self - .0 - .with_frame(BodyFixed(Dia)) - .try_to_frame(frame, provider), - PyFrame::Mimas => self - .0 - .with_frame(BodyFixed(Mimas)) - .try_to_frame(frame, provider), - PyFrame::Enceladus => self - .0 - .with_frame(BodyFixed(Enceladus)) - .try_to_frame(frame, provider), - PyFrame::Tethys => self - .0 - .with_frame(BodyFixed(Tethys)) - .try_to_frame(frame, provider), - PyFrame::Dione => self - .0 - .with_frame(BodyFixed(Dione)) - .try_to_frame(frame, provider), - PyFrame::Rhea => self - .0 - .with_frame(BodyFixed(Rhea)) - .try_to_frame(frame, provider), - PyFrame::Titan => self - .0 - .with_frame(BodyFixed(Titan)) - .try_to_frame(frame, provider), - PyFrame::Hyperion => self - .0 - .with_frame(BodyFixed(Hyperion)) - .try_to_frame(frame, provider), - PyFrame::Iapetus => self - .0 - .with_frame(BodyFixed(Iapetus)) - .try_to_frame(frame, provider), - PyFrame::Phoebe => self - .0 - .with_frame(BodyFixed(Phoebe)) - .try_to_frame(frame, provider), - PyFrame::Janus => self - .0 - .with_frame(BodyFixed(Janus)) - .try_to_frame(frame, provider), - PyFrame::Epimetheus => self - .0 - .with_frame(BodyFixed(Epimetheus)) - .try_to_frame(frame, provider), - PyFrame::Helene => self - .0 - .with_frame(BodyFixed(Helene)) - .try_to_frame(frame, provider), - PyFrame::Telesto => self - .0 - .with_frame(BodyFixed(Telesto)) - .try_to_frame(frame, provider), - PyFrame::Calypso => self - .0 - .with_frame(BodyFixed(Calypso)) - .try_to_frame(frame, provider), - PyFrame::Atlas => self - .0 - .with_frame(BodyFixed(Atlas)) - .try_to_frame(frame, provider), - PyFrame::Prometheus => self - .0 - .with_frame(BodyFixed(Prometheus)) - .try_to_frame(frame, provider), - PyFrame::Pandora => self - .0 - .with_frame(BodyFixed(Pandora)) - .try_to_frame(frame, provider), - PyFrame::Pan => self - .0 - .with_frame(BodyFixed(Pan)) - .try_to_frame(frame, provider), - PyFrame::Ymir => self - .0 - .with_frame(BodyFixed(Ymir)) - .try_to_frame(frame, provider), - PyFrame::Paaliaq => self - .0 - .with_frame(BodyFixed(Paaliaq)) - .try_to_frame(frame, provider), - PyFrame::Tarvos => self - .0 - .with_frame(BodyFixed(Tarvos)) - .try_to_frame(frame, provider), - PyFrame::Ijiraq => self - .0 - .with_frame(BodyFixed(Ijiraq)) - .try_to_frame(frame, provider), - PyFrame::Suttungr => self - .0 - .with_frame(BodyFixed(Suttungr)) - .try_to_frame(frame, provider), - PyFrame::Kiviuq => self - .0 - .with_frame(BodyFixed(Kiviuq)) - .try_to_frame(frame, provider), - PyFrame::Mundilfari => self - .0 - .with_frame(BodyFixed(Mundilfari)) - .try_to_frame(frame, provider), - PyFrame::Albiorix => self - .0 - .with_frame(BodyFixed(Albiorix)) - .try_to_frame(frame, provider), - PyFrame::Skathi => self - .0 - .with_frame(BodyFixed(Skathi)) - .try_to_frame(frame, provider), - PyFrame::Erriapus => self - .0 - .with_frame(BodyFixed(Erriapus)) - .try_to_frame(frame, provider), - PyFrame::Siarnaq => self - .0 - .with_frame(BodyFixed(Siarnaq)) - .try_to_frame(frame, provider), - PyFrame::Thrymr => self - .0 - .with_frame(BodyFixed(Thrymr)) - .try_to_frame(frame, provider), - PyFrame::Narvi => self - .0 - .with_frame(BodyFixed(Narvi)) - .try_to_frame(frame, provider), - PyFrame::Methone => self - .0 - .with_frame(BodyFixed(Methone)) - .try_to_frame(frame, provider), - PyFrame::Pallene => self - .0 - .with_frame(BodyFixed(Pallene)) - .try_to_frame(frame, provider), - PyFrame::Polydeuces => self - .0 - .with_frame(BodyFixed(Polydeuces)) - .try_to_frame(frame, provider), - PyFrame::Daphnis => self - .0 - .with_frame(BodyFixed(Daphnis)) - .try_to_frame(frame, provider), - PyFrame::Aegir => self - .0 - .with_frame(BodyFixed(Aegir)) - .try_to_frame(frame, provider), - PyFrame::Bebhionn => self - .0 - .with_frame(BodyFixed(Bebhionn)) - .try_to_frame(frame, provider), - PyFrame::Bergelmir => self - .0 - .with_frame(BodyFixed(Bergelmir)) - .try_to_frame(frame, provider), - PyFrame::Bestla => self - .0 - .with_frame(BodyFixed(Bestla)) - .try_to_frame(frame, provider), - PyFrame::Farbauti => self - .0 - .with_frame(BodyFixed(Farbauti)) - .try_to_frame(frame, provider), - PyFrame::Fenrir => self - .0 - .with_frame(BodyFixed(Fenrir)) - .try_to_frame(frame, provider), - PyFrame::Fornjot => self - .0 - .with_frame(BodyFixed(Fornjot)) - .try_to_frame(frame, provider), - PyFrame::Hati => self - .0 - .with_frame(BodyFixed(Hati)) - .try_to_frame(frame, provider), - PyFrame::Hyrrokkin => self - .0 - .with_frame(BodyFixed(Hyrrokkin)) - .try_to_frame(frame, provider), - PyFrame::Kari => self - .0 - .with_frame(BodyFixed(Kari)) - .try_to_frame(frame, provider), - PyFrame::Loge => self - .0 - .with_frame(BodyFixed(Loge)) - .try_to_frame(frame, provider), - PyFrame::Skoll => self - .0 - .with_frame(BodyFixed(Skoll)) - .try_to_frame(frame, provider), - PyFrame::Surtur => self - .0 - .with_frame(BodyFixed(Surtur)) - .try_to_frame(frame, provider), - PyFrame::Anthe => self - .0 - .with_frame(BodyFixed(Anthe)) - .try_to_frame(frame, provider), - PyFrame::Jarnsaxa => self - .0 - .with_frame(BodyFixed(Jarnsaxa)) - .try_to_frame(frame, provider), - PyFrame::Greip => self - .0 - .with_frame(BodyFixed(Greip)) - .try_to_frame(frame, provider), - PyFrame::Tarqeq => self - .0 - .with_frame(BodyFixed(Tarqeq)) - .try_to_frame(frame, provider), - PyFrame::Aegaeon => self - .0 - .with_frame(BodyFixed(Aegaeon)) - .try_to_frame(frame, provider), - PyFrame::Ariel => self - .0 - .with_frame(BodyFixed(Ariel)) - .try_to_frame(frame, provider), - PyFrame::Umbriel => self - .0 - .with_frame(BodyFixed(Umbriel)) - .try_to_frame(frame, provider), - PyFrame::Titania => self - .0 - .with_frame(BodyFixed(Titania)) - .try_to_frame(frame, provider), - PyFrame::Oberon => self - .0 - .with_frame(BodyFixed(Oberon)) - .try_to_frame(frame, provider), - PyFrame::Miranda => self - .0 - .with_frame(BodyFixed(Miranda)) - .try_to_frame(frame, provider), - PyFrame::Cordelia => self - .0 - .with_frame(BodyFixed(Cordelia)) - .try_to_frame(frame, provider), - PyFrame::Ophelia => self - .0 - .with_frame(BodyFixed(Ophelia)) - .try_to_frame(frame, provider), - PyFrame::Bianca => self - .0 - .with_frame(BodyFixed(Bianca)) - .try_to_frame(frame, provider), - PyFrame::Cressida => self - .0 - .with_frame(BodyFixed(Cressida)) - .try_to_frame(frame, provider), - PyFrame::Desdemona => self - .0 - .with_frame(BodyFixed(Desdemona)) - .try_to_frame(frame, provider), - PyFrame::Juliet => self - .0 - .with_frame(BodyFixed(Juliet)) - .try_to_frame(frame, provider), - PyFrame::Portia => self - .0 - .with_frame(BodyFixed(Portia)) - .try_to_frame(frame, provider), - PyFrame::Rosalind => self - .0 - .with_frame(BodyFixed(Rosalind)) - .try_to_frame(frame, provider), - PyFrame::Belinda => self - .0 - .with_frame(BodyFixed(Belinda)) - .try_to_frame(frame, provider), - PyFrame::Puck => self - .0 - .with_frame(BodyFixed(Puck)) - .try_to_frame(frame, provider), - PyFrame::Caliban => self - .0 - .with_frame(BodyFixed(Caliban)) - .try_to_frame(frame, provider), - PyFrame::Sycorax => self - .0 - .with_frame(BodyFixed(Sycorax)) - .try_to_frame(frame, provider), - PyFrame::Prospero => self - .0 - .with_frame(BodyFixed(Prospero)) - .try_to_frame(frame, provider), - PyFrame::Setebos => self - .0 - .with_frame(BodyFixed(Setebos)) - .try_to_frame(frame, provider), - PyFrame::Stephano => self - .0 - .with_frame(BodyFixed(Stephano)) - .try_to_frame(frame, provider), - PyFrame::Trinculo => self - .0 - .with_frame(BodyFixed(Trinculo)) - .try_to_frame(frame, provider), - PyFrame::Francisco => self - .0 - .with_frame(BodyFixed(Francisco)) - .try_to_frame(frame, provider), - PyFrame::Margaret => self - .0 - .with_frame(BodyFixed(Margaret)) - .try_to_frame(frame, provider), - PyFrame::Ferdinand => self - .0 - .with_frame(BodyFixed(Ferdinand)) - .try_to_frame(frame, provider), - PyFrame::Perdita => self - .0 - .with_frame(BodyFixed(Perdita)) - .try_to_frame(frame, provider), - PyFrame::Mab => self - .0 - .with_frame(BodyFixed(Mab)) - .try_to_frame(frame, provider), - PyFrame::Cupid => self - .0 - .with_frame(BodyFixed(Cupid)) - .try_to_frame(frame, provider), - PyFrame::Triton => self - .0 - .with_frame(BodyFixed(Triton)) - .try_to_frame(frame, provider), - PyFrame::Nereid => self - .0 - .with_frame(BodyFixed(Nereid)) - .try_to_frame(frame, provider), - PyFrame::Naiad => self - .0 - .with_frame(BodyFixed(Naiad)) - .try_to_frame(frame, provider), - PyFrame::Thalassa => self - .0 - .with_frame(BodyFixed(Thalassa)) - .try_to_frame(frame, provider), - PyFrame::Despina => self - .0 - .with_frame(BodyFixed(Despina)) - .try_to_frame(frame, provider), - PyFrame::Galatea => self - .0 - .with_frame(BodyFixed(Galatea)) - .try_to_frame(frame, provider), - PyFrame::Larissa => self - .0 - .with_frame(BodyFixed(Larissa)) - .try_to_frame(frame, provider), - PyFrame::Proteus => self - .0 - .with_frame(BodyFixed(Proteus)) - .try_to_frame(frame, provider), - PyFrame::Halimede => self - .0 - .with_frame(BodyFixed(Halimede)) - .try_to_frame(frame, provider), - PyFrame::Psamathe => self - .0 - .with_frame(BodyFixed(Psamathe)) - .try_to_frame(frame, provider), - PyFrame::Sao => self - .0 - .with_frame(BodyFixed(Sao)) - .try_to_frame(frame, provider), - PyFrame::Laomedeia => self - .0 - .with_frame(BodyFixed(Laomedeia)) - .try_to_frame(frame, provider), - PyFrame::Neso => self - .0 - .with_frame(BodyFixed(Neso)) - .try_to_frame(frame, provider), - PyFrame::Charon => self - .0 - .with_frame(BodyFixed(Charon)) - .try_to_frame(frame, provider), - PyFrame::Nix => self - .0 - .with_frame(BodyFixed(Nix)) - .try_to_frame(frame, provider), - PyFrame::Hydra => self - .0 - .with_frame(BodyFixed(Hydra)) - .try_to_frame(frame, provider), - PyFrame::Kerberos => self - .0 - .with_frame(BodyFixed(Kerberos)) - .try_to_frame(frame, provider), - PyFrame::Styx => self - .0 - .with_frame(BodyFixed(Styx)) - .try_to_frame(frame, provider), - PyFrame::Gaspra => self - .0 - .with_frame(BodyFixed(Gaspra)) - .try_to_frame(frame, provider), - PyFrame::Ida => self - .0 - .with_frame(BodyFixed(Ida)) - .try_to_frame(frame, provider), - PyFrame::Dactyl => self - .0 - .with_frame(BodyFixed(Dactyl)) - .try_to_frame(frame, provider), - PyFrame::Ceres => self - .0 - .with_frame(BodyFixed(Ceres)) - .try_to_frame(frame, provider), - PyFrame::Pallas => self - .0 - .with_frame(BodyFixed(Pallas)) - .try_to_frame(frame, provider), - PyFrame::Vesta => self - .0 - .with_frame(BodyFixed(Vesta)) - .try_to_frame(frame, provider), - PyFrame::Psyche => self - .0 - .with_frame(BodyFixed(Psyche)) - .try_to_frame(frame, provider), - PyFrame::Lutetia => self - .0 - .with_frame(BodyFixed(Lutetia)) - .try_to_frame(frame, provider), - PyFrame::Kleopatra => self - .0 - .with_frame(BodyFixed(Kleopatra)) - .try_to_frame(frame, provider), - PyFrame::Eros => self - .0 - .with_frame(BodyFixed(Eros)) - .try_to_frame(frame, provider), - PyFrame::Davida => self - .0 - .with_frame(BodyFixed(Davida)) - .try_to_frame(frame, provider), - PyFrame::Mathilde => self - .0 - .with_frame(BodyFixed(Mathilde)) - .try_to_frame(frame, provider), - PyFrame::Steins => self - .0 - .with_frame(BodyFixed(Steins)) - .try_to_frame(frame, provider), - PyFrame::Braille => self - .0 - .with_frame(BodyFixed(Braille)) - .try_to_frame(frame, provider), - PyFrame::WilsonHarrington => self - .0 - .with_frame(BodyFixed(WilsonHarrington)) - .try_to_frame(frame, provider), - PyFrame::Toutatis => self - .0 - .with_frame(BodyFixed(Toutatis)) - .try_to_frame(frame, provider), - PyFrame::Itokawa => self - .0 - .with_frame(BodyFixed(Itokawa)) - .try_to_frame(frame, provider), - PyFrame::Bennu => self - .0 - .with_frame(BodyFixed(Bennu)) - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Sun => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Mercury => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Venus => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Earth => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Mars => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Jupiter => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Saturn => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Uranus => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Neptune => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Pluto => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Moon => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Phobos => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Deimos => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Io => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Europa => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Ganymede => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Callisto => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Amalthea => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Himalia => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Elara => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Pasiphae => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Sinope => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Lysithea => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Carme => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Ananke => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Leda => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Thebe => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Adrastea => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Metis => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Callirrhoe => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Themisto => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Magaclite => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Taygete => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Chaldene => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Harpalyke => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Kalyke => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Iocaste => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Erinome => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Isonoe => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Praxidike => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Autonoe => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Thyone => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Hermippe => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Aitne => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Eurydome => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Euanthe => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Euporie => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Orthosie => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Sponde => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Kale => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Pasithee => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Hegemone => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Mneme => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Aoede => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Thelxinoe => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Arche => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Kallichore => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Helike => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Carpo => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Eukelade => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Cyllene => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Kore => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Herse => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Dia => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Mimas => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Enceladus => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Tethys => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Dione => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Rhea => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Titan => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Hyperion => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Iapetus => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Phoebe => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Janus => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Epimetheus => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Helene => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Telesto => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Calypso => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Atlas => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Prometheus => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Pandora => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Pan => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Ymir => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Paaliaq => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Tarvos => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Ijiraq => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Suttungr => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Kiviuq => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Mundilfari => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Albiorix => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Skathi => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Erriapus => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Siarnaq => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Thrymr => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Narvi => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Methone => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Pallene => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Polydeuces => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Daphnis => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Aegir => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Bebhionn => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Bergelmir => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Bestla => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Farbauti => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Fenrir => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Fornjot => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Hati => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Hyrrokkin => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Kari => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Loge => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Skoll => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Surtur => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Anthe => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Jarnsaxa => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Greip => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Tarqeq => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Aegaeon => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Ariel => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Umbriel => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Titania => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Oberon => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Miranda => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Cordelia => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Ophelia => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Bianca => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Cressida => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Desdemona => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Juliet => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Portia => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Rosalind => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Belinda => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Puck => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Caliban => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Sycorax => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Prospero => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Setebos => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Stephano => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Trinculo => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Francisco => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Margaret => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Ferdinand => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Perdita => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Mab => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Cupid => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Triton => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Nereid => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Naiad => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Thalassa => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Despina => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Galatea => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Larissa => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Proteus => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Halimede => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Psamathe => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Sao => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Laomedeia => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Neso => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Charon => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Nix => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Hydra => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Kerberos => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Styx => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Gaspra => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Ida => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Dactyl => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Ceres => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Pallas => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Vesta => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Psyche => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Lutetia => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Kleopatra => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Eros => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Davida => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Mathilde => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Steins => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Braille => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::WilsonHarrington => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Toutatis => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Itokawa => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl TryToFrame, T> for PyState -where - T: FrameTransformationProvider + PyDeltaUt1Provider, -{ - type Output = State>; - type Error = T::Error; - fn try_to_frame( - &self, - frame: BodyFixed, - provider: &T, - ) -> Result>, T::Error> { - match self.0.reference_frame() { - PyFrame::Icrf => self.0.with_frame(Icrf).try_to_frame(frame, provider), - PyFrame::Bennu => Ok(self.0.with_frame(frame)), - _ => self - .try_to_frame(Icrf, provider)? - .try_to_frame(frame, provider), - } - } -} -impl PyState { - pub fn to_frame_generated( - &self, - frame: PyFrame, - provider: Option<&Bound<'_, PyUt1Provider>>, - ) -> PyResult { - match frame { - PyFrame::Icrf => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(Icrf, provider.get())? - .with_frame(PyFrame::Icrf), - )), - None => Ok(PyState( - self.try_to_frame(Icrf, &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Icrf), - )), - }, - PyFrame::Sun => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Sun), provider.get())? - .with_frame(PyFrame::Sun), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Sun), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Sun), - )), - }, - PyFrame::Mercury => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Mercury), provider.get())? - .with_frame(PyFrame::Mercury), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Mercury), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Mercury), - )), - }, - PyFrame::Venus => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Venus), provider.get())? - .with_frame(PyFrame::Venus), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Venus), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Venus), - )), - }, - PyFrame::Earth => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Earth), provider.get())? - .with_frame(PyFrame::Earth), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Earth), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Earth), - )), - }, - PyFrame::Mars => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Mars), provider.get())? - .with_frame(PyFrame::Mars), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Mars), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Mars), - )), - }, - PyFrame::Jupiter => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Jupiter), provider.get())? - .with_frame(PyFrame::Jupiter), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Jupiter), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Jupiter), - )), - }, - PyFrame::Saturn => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Saturn), provider.get())? - .with_frame(PyFrame::Saturn), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Saturn), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Saturn), - )), - }, - PyFrame::Uranus => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Uranus), provider.get())? - .with_frame(PyFrame::Uranus), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Uranus), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Uranus), - )), - }, - PyFrame::Neptune => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Neptune), provider.get())? - .with_frame(PyFrame::Neptune), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Neptune), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Neptune), - )), - }, - PyFrame::Pluto => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Pluto), provider.get())? - .with_frame(PyFrame::Pluto), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Pluto), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Pluto), - )), - }, - PyFrame::Moon => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Moon), provider.get())? - .with_frame(PyFrame::Moon), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Moon), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Moon), - )), - }, - PyFrame::Phobos => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Phobos), provider.get())? - .with_frame(PyFrame::Phobos), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Phobos), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Phobos), - )), - }, - PyFrame::Deimos => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Deimos), provider.get())? - .with_frame(PyFrame::Deimos), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Deimos), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Deimos), - )), - }, - PyFrame::Io => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Io), provider.get())? - .with_frame(PyFrame::Io), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Io), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Io), - )), - }, - PyFrame::Europa => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Europa), provider.get())? - .with_frame(PyFrame::Europa), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Europa), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Europa), - )), - }, - PyFrame::Ganymede => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Ganymede), provider.get())? - .with_frame(PyFrame::Ganymede), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Ganymede), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Ganymede), - )), - }, - PyFrame::Callisto => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Callisto), provider.get())? - .with_frame(PyFrame::Callisto), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Callisto), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Callisto), - )), - }, - PyFrame::Amalthea => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Amalthea), provider.get())? - .with_frame(PyFrame::Amalthea), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Amalthea), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Amalthea), - )), - }, - PyFrame::Himalia => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Himalia), provider.get())? - .with_frame(PyFrame::Himalia), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Himalia), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Himalia), - )), - }, - PyFrame::Elara => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Elara), provider.get())? - .with_frame(PyFrame::Elara), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Elara), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Elara), - )), - }, - PyFrame::Pasiphae => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Pasiphae), provider.get())? - .with_frame(PyFrame::Pasiphae), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Pasiphae), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Pasiphae), - )), - }, - PyFrame::Sinope => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Sinope), provider.get())? - .with_frame(PyFrame::Sinope), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Sinope), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Sinope), - )), - }, - PyFrame::Lysithea => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Lysithea), provider.get())? - .with_frame(PyFrame::Lysithea), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Lysithea), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Lysithea), - )), - }, - PyFrame::Carme => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Carme), provider.get())? - .with_frame(PyFrame::Carme), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Carme), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Carme), - )), - }, - PyFrame::Ananke => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Ananke), provider.get())? - .with_frame(PyFrame::Ananke), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Ananke), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Ananke), - )), - }, - PyFrame::Leda => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Leda), provider.get())? - .with_frame(PyFrame::Leda), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Leda), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Leda), - )), - }, - PyFrame::Thebe => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Thebe), provider.get())? - .with_frame(PyFrame::Thebe), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Thebe), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Thebe), - )), - }, - PyFrame::Adrastea => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Adrastea), provider.get())? - .with_frame(PyFrame::Adrastea), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Adrastea), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Adrastea), - )), - }, - PyFrame::Metis => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Metis), provider.get())? - .with_frame(PyFrame::Metis), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Metis), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Metis), - )), - }, - PyFrame::Callirrhoe => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Callirrhoe), provider.get())? - .with_frame(PyFrame::Callirrhoe), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Callirrhoe), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Callirrhoe), - )), - }, - PyFrame::Themisto => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Themisto), provider.get())? - .with_frame(PyFrame::Themisto), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Themisto), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Themisto), - )), - }, - PyFrame::Magaclite => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Magaclite), provider.get())? - .with_frame(PyFrame::Magaclite), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Magaclite), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Magaclite), - )), - }, - PyFrame::Taygete => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Taygete), provider.get())? - .with_frame(PyFrame::Taygete), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Taygete), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Taygete), - )), - }, - PyFrame::Chaldene => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Chaldene), provider.get())? - .with_frame(PyFrame::Chaldene), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Chaldene), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Chaldene), - )), - }, - PyFrame::Harpalyke => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Harpalyke), provider.get())? - .with_frame(PyFrame::Harpalyke), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Harpalyke), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Harpalyke), - )), - }, - PyFrame::Kalyke => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Kalyke), provider.get())? - .with_frame(PyFrame::Kalyke), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Kalyke), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Kalyke), - )), - }, - PyFrame::Iocaste => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Iocaste), provider.get())? - .with_frame(PyFrame::Iocaste), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Iocaste), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Iocaste), - )), - }, - PyFrame::Erinome => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Erinome), provider.get())? - .with_frame(PyFrame::Erinome), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Erinome), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Erinome), - )), - }, - PyFrame::Isonoe => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Isonoe), provider.get())? - .with_frame(PyFrame::Isonoe), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Isonoe), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Isonoe), - )), - }, - PyFrame::Praxidike => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Praxidike), provider.get())? - .with_frame(PyFrame::Praxidike), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Praxidike), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Praxidike), - )), - }, - PyFrame::Autonoe => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Autonoe), provider.get())? - .with_frame(PyFrame::Autonoe), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Autonoe), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Autonoe), - )), - }, - PyFrame::Thyone => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Thyone), provider.get())? - .with_frame(PyFrame::Thyone), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Thyone), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Thyone), - )), - }, - PyFrame::Hermippe => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Hermippe), provider.get())? - .with_frame(PyFrame::Hermippe), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Hermippe), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Hermippe), - )), - }, - PyFrame::Aitne => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Aitne), provider.get())? - .with_frame(PyFrame::Aitne), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Aitne), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Aitne), - )), - }, - PyFrame::Eurydome => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Eurydome), provider.get())? - .with_frame(PyFrame::Eurydome), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Eurydome), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Eurydome), - )), - }, - PyFrame::Euanthe => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Euanthe), provider.get())? - .with_frame(PyFrame::Euanthe), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Euanthe), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Euanthe), - )), - }, - PyFrame::Euporie => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Euporie), provider.get())? - .with_frame(PyFrame::Euporie), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Euporie), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Euporie), - )), - }, - PyFrame::Orthosie => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Orthosie), provider.get())? - .with_frame(PyFrame::Orthosie), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Orthosie), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Orthosie), - )), - }, - PyFrame::Sponde => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Sponde), provider.get())? - .with_frame(PyFrame::Sponde), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Sponde), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Sponde), - )), - }, - PyFrame::Kale => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Kale), provider.get())? - .with_frame(PyFrame::Kale), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Kale), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Kale), - )), - }, - PyFrame::Pasithee => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Pasithee), provider.get())? - .with_frame(PyFrame::Pasithee), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Pasithee), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Pasithee), - )), - }, - PyFrame::Hegemone => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Hegemone), provider.get())? - .with_frame(PyFrame::Hegemone), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Hegemone), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Hegemone), - )), - }, - PyFrame::Mneme => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Mneme), provider.get())? - .with_frame(PyFrame::Mneme), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Mneme), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Mneme), - )), - }, - PyFrame::Aoede => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Aoede), provider.get())? - .with_frame(PyFrame::Aoede), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Aoede), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Aoede), - )), - }, - PyFrame::Thelxinoe => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Thelxinoe), provider.get())? - .with_frame(PyFrame::Thelxinoe), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Thelxinoe), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Thelxinoe), - )), - }, - PyFrame::Arche => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Arche), provider.get())? - .with_frame(PyFrame::Arche), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Arche), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Arche), - )), - }, - PyFrame::Kallichore => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Kallichore), provider.get())? - .with_frame(PyFrame::Kallichore), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Kallichore), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Kallichore), - )), - }, - PyFrame::Helike => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Helike), provider.get())? - .with_frame(PyFrame::Helike), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Helike), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Helike), - )), - }, - PyFrame::Carpo => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Carpo), provider.get())? - .with_frame(PyFrame::Carpo), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Carpo), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Carpo), - )), - }, - PyFrame::Eukelade => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Eukelade), provider.get())? - .with_frame(PyFrame::Eukelade), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Eukelade), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Eukelade), - )), - }, - PyFrame::Cyllene => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Cyllene), provider.get())? - .with_frame(PyFrame::Cyllene), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Cyllene), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Cyllene), - )), - }, - PyFrame::Kore => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Kore), provider.get())? - .with_frame(PyFrame::Kore), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Kore), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Kore), - )), - }, - PyFrame::Herse => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Herse), provider.get())? - .with_frame(PyFrame::Herse), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Herse), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Herse), - )), - }, - PyFrame::Dia => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Dia), provider.get())? - .with_frame(PyFrame::Dia), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Dia), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Dia), - )), - }, - PyFrame::Mimas => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Mimas), provider.get())? - .with_frame(PyFrame::Mimas), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Mimas), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Mimas), - )), - }, - PyFrame::Enceladus => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Enceladus), provider.get())? - .with_frame(PyFrame::Enceladus), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Enceladus), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Enceladus), - )), - }, - PyFrame::Tethys => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Tethys), provider.get())? - .with_frame(PyFrame::Tethys), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Tethys), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Tethys), - )), - }, - PyFrame::Dione => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Dione), provider.get())? - .with_frame(PyFrame::Dione), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Dione), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Dione), - )), - }, - PyFrame::Rhea => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Rhea), provider.get())? - .with_frame(PyFrame::Rhea), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Rhea), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Rhea), - )), - }, - PyFrame::Titan => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Titan), provider.get())? - .with_frame(PyFrame::Titan), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Titan), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Titan), - )), - }, - PyFrame::Hyperion => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Hyperion), provider.get())? - .with_frame(PyFrame::Hyperion), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Hyperion), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Hyperion), - )), - }, - PyFrame::Iapetus => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Iapetus), provider.get())? - .with_frame(PyFrame::Iapetus), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Iapetus), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Iapetus), - )), - }, - PyFrame::Phoebe => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Phoebe), provider.get())? - .with_frame(PyFrame::Phoebe), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Phoebe), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Phoebe), - )), - }, - PyFrame::Janus => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Janus), provider.get())? - .with_frame(PyFrame::Janus), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Janus), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Janus), - )), - }, - PyFrame::Epimetheus => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Epimetheus), provider.get())? - .with_frame(PyFrame::Epimetheus), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Epimetheus), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Epimetheus), - )), - }, - PyFrame::Helene => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Helene), provider.get())? - .with_frame(PyFrame::Helene), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Helene), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Helene), - )), - }, - PyFrame::Telesto => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Telesto), provider.get())? - .with_frame(PyFrame::Telesto), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Telesto), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Telesto), - )), - }, - PyFrame::Calypso => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Calypso), provider.get())? - .with_frame(PyFrame::Calypso), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Calypso), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Calypso), - )), - }, - PyFrame::Atlas => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Atlas), provider.get())? - .with_frame(PyFrame::Atlas), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Atlas), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Atlas), - )), - }, - PyFrame::Prometheus => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Prometheus), provider.get())? - .with_frame(PyFrame::Prometheus), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Prometheus), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Prometheus), - )), - }, - PyFrame::Pandora => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Pandora), provider.get())? - .with_frame(PyFrame::Pandora), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Pandora), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Pandora), - )), - }, - PyFrame::Pan => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Pan), provider.get())? - .with_frame(PyFrame::Pan), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Pan), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Pan), - )), - }, - PyFrame::Ymir => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Ymir), provider.get())? - .with_frame(PyFrame::Ymir), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Ymir), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Ymir), - )), - }, - PyFrame::Paaliaq => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Paaliaq), provider.get())? - .with_frame(PyFrame::Paaliaq), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Paaliaq), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Paaliaq), - )), - }, - PyFrame::Tarvos => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Tarvos), provider.get())? - .with_frame(PyFrame::Tarvos), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Tarvos), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Tarvos), - )), - }, - PyFrame::Ijiraq => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Ijiraq), provider.get())? - .with_frame(PyFrame::Ijiraq), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Ijiraq), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Ijiraq), - )), - }, - PyFrame::Suttungr => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Suttungr), provider.get())? - .with_frame(PyFrame::Suttungr), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Suttungr), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Suttungr), - )), - }, - PyFrame::Kiviuq => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Kiviuq), provider.get())? - .with_frame(PyFrame::Kiviuq), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Kiviuq), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Kiviuq), - )), - }, - PyFrame::Mundilfari => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Mundilfari), provider.get())? - .with_frame(PyFrame::Mundilfari), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Mundilfari), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Mundilfari), - )), - }, - PyFrame::Albiorix => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Albiorix), provider.get())? - .with_frame(PyFrame::Albiorix), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Albiorix), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Albiorix), - )), - }, - PyFrame::Skathi => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Skathi), provider.get())? - .with_frame(PyFrame::Skathi), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Skathi), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Skathi), - )), - }, - PyFrame::Erriapus => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Erriapus), provider.get())? - .with_frame(PyFrame::Erriapus), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Erriapus), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Erriapus), - )), - }, - PyFrame::Siarnaq => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Siarnaq), provider.get())? - .with_frame(PyFrame::Siarnaq), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Siarnaq), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Siarnaq), - )), - }, - PyFrame::Thrymr => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Thrymr), provider.get())? - .with_frame(PyFrame::Thrymr), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Thrymr), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Thrymr), - )), - }, - PyFrame::Narvi => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Narvi), provider.get())? - .with_frame(PyFrame::Narvi), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Narvi), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Narvi), - )), - }, - PyFrame::Methone => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Methone), provider.get())? - .with_frame(PyFrame::Methone), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Methone), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Methone), - )), - }, - PyFrame::Pallene => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Pallene), provider.get())? - .with_frame(PyFrame::Pallene), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Pallene), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Pallene), - )), - }, - PyFrame::Polydeuces => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Polydeuces), provider.get())? - .with_frame(PyFrame::Polydeuces), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Polydeuces), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Polydeuces), - )), - }, - PyFrame::Daphnis => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Daphnis), provider.get())? - .with_frame(PyFrame::Daphnis), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Daphnis), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Daphnis), - )), - }, - PyFrame::Aegir => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Aegir), provider.get())? - .with_frame(PyFrame::Aegir), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Aegir), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Aegir), - )), - }, - PyFrame::Bebhionn => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Bebhionn), provider.get())? - .with_frame(PyFrame::Bebhionn), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Bebhionn), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Bebhionn), - )), - }, - PyFrame::Bergelmir => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Bergelmir), provider.get())? - .with_frame(PyFrame::Bergelmir), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Bergelmir), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Bergelmir), - )), - }, - PyFrame::Bestla => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Bestla), provider.get())? - .with_frame(PyFrame::Bestla), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Bestla), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Bestla), - )), - }, - PyFrame::Farbauti => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Farbauti), provider.get())? - .with_frame(PyFrame::Farbauti), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Farbauti), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Farbauti), - )), - }, - PyFrame::Fenrir => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Fenrir), provider.get())? - .with_frame(PyFrame::Fenrir), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Fenrir), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Fenrir), - )), - }, - PyFrame::Fornjot => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Fornjot), provider.get())? - .with_frame(PyFrame::Fornjot), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Fornjot), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Fornjot), - )), - }, - PyFrame::Hati => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Hati), provider.get())? - .with_frame(PyFrame::Hati), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Hati), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Hati), - )), - }, - PyFrame::Hyrrokkin => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Hyrrokkin), provider.get())? - .with_frame(PyFrame::Hyrrokkin), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Hyrrokkin), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Hyrrokkin), - )), - }, - PyFrame::Kari => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Kari), provider.get())? - .with_frame(PyFrame::Kari), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Kari), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Kari), - )), - }, - PyFrame::Loge => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Loge), provider.get())? - .with_frame(PyFrame::Loge), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Loge), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Loge), - )), - }, - PyFrame::Skoll => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Skoll), provider.get())? - .with_frame(PyFrame::Skoll), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Skoll), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Skoll), - )), - }, - PyFrame::Surtur => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Surtur), provider.get())? - .with_frame(PyFrame::Surtur), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Surtur), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Surtur), - )), - }, - PyFrame::Anthe => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Anthe), provider.get())? - .with_frame(PyFrame::Anthe), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Anthe), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Anthe), - )), - }, - PyFrame::Jarnsaxa => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Jarnsaxa), provider.get())? - .with_frame(PyFrame::Jarnsaxa), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Jarnsaxa), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Jarnsaxa), - )), - }, - PyFrame::Greip => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Greip), provider.get())? - .with_frame(PyFrame::Greip), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Greip), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Greip), - )), - }, - PyFrame::Tarqeq => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Tarqeq), provider.get())? - .with_frame(PyFrame::Tarqeq), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Tarqeq), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Tarqeq), - )), - }, - PyFrame::Aegaeon => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Aegaeon), provider.get())? - .with_frame(PyFrame::Aegaeon), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Aegaeon), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Aegaeon), - )), - }, - PyFrame::Ariel => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Ariel), provider.get())? - .with_frame(PyFrame::Ariel), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Ariel), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Ariel), - )), - }, - PyFrame::Umbriel => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Umbriel), provider.get())? - .with_frame(PyFrame::Umbriel), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Umbriel), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Umbriel), - )), - }, - PyFrame::Titania => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Titania), provider.get())? - .with_frame(PyFrame::Titania), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Titania), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Titania), - )), - }, - PyFrame::Oberon => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Oberon), provider.get())? - .with_frame(PyFrame::Oberon), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Oberon), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Oberon), - )), - }, - PyFrame::Miranda => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Miranda), provider.get())? - .with_frame(PyFrame::Miranda), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Miranda), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Miranda), - )), - }, - PyFrame::Cordelia => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Cordelia), provider.get())? - .with_frame(PyFrame::Cordelia), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Cordelia), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Cordelia), - )), - }, - PyFrame::Ophelia => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Ophelia), provider.get())? - .with_frame(PyFrame::Ophelia), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Ophelia), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Ophelia), - )), - }, - PyFrame::Bianca => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Bianca), provider.get())? - .with_frame(PyFrame::Bianca), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Bianca), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Bianca), - )), - }, - PyFrame::Cressida => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Cressida), provider.get())? - .with_frame(PyFrame::Cressida), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Cressida), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Cressida), - )), - }, - PyFrame::Desdemona => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Desdemona), provider.get())? - .with_frame(PyFrame::Desdemona), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Desdemona), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Desdemona), - )), - }, - PyFrame::Juliet => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Juliet), provider.get())? - .with_frame(PyFrame::Juliet), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Juliet), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Juliet), - )), - }, - PyFrame::Portia => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Portia), provider.get())? - .with_frame(PyFrame::Portia), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Portia), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Portia), - )), - }, - PyFrame::Rosalind => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Rosalind), provider.get())? - .with_frame(PyFrame::Rosalind), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Rosalind), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Rosalind), - )), - }, - PyFrame::Belinda => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Belinda), provider.get())? - .with_frame(PyFrame::Belinda), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Belinda), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Belinda), - )), - }, - PyFrame::Puck => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Puck), provider.get())? - .with_frame(PyFrame::Puck), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Puck), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Puck), - )), - }, - PyFrame::Caliban => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Caliban), provider.get())? - .with_frame(PyFrame::Caliban), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Caliban), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Caliban), - )), - }, - PyFrame::Sycorax => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Sycorax), provider.get())? - .with_frame(PyFrame::Sycorax), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Sycorax), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Sycorax), - )), - }, - PyFrame::Prospero => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Prospero), provider.get())? - .with_frame(PyFrame::Prospero), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Prospero), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Prospero), - )), - }, - PyFrame::Setebos => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Setebos), provider.get())? - .with_frame(PyFrame::Setebos), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Setebos), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Setebos), - )), - }, - PyFrame::Stephano => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Stephano), provider.get())? - .with_frame(PyFrame::Stephano), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Stephano), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Stephano), - )), - }, - PyFrame::Trinculo => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Trinculo), provider.get())? - .with_frame(PyFrame::Trinculo), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Trinculo), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Trinculo), - )), - }, - PyFrame::Francisco => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Francisco), provider.get())? - .with_frame(PyFrame::Francisco), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Francisco), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Francisco), - )), - }, - PyFrame::Margaret => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Margaret), provider.get())? - .with_frame(PyFrame::Margaret), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Margaret), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Margaret), - )), - }, - PyFrame::Ferdinand => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Ferdinand), provider.get())? - .with_frame(PyFrame::Ferdinand), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Ferdinand), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Ferdinand), - )), - }, - PyFrame::Perdita => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Perdita), provider.get())? - .with_frame(PyFrame::Perdita), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Perdita), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Perdita), - )), - }, - PyFrame::Mab => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Mab), provider.get())? - .with_frame(PyFrame::Mab), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Mab), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Mab), - )), - }, - PyFrame::Cupid => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Cupid), provider.get())? - .with_frame(PyFrame::Cupid), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Cupid), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Cupid), - )), - }, - PyFrame::Triton => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Triton), provider.get())? - .with_frame(PyFrame::Triton), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Triton), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Triton), - )), - }, - PyFrame::Nereid => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Nereid), provider.get())? - .with_frame(PyFrame::Nereid), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Nereid), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Nereid), - )), - }, - PyFrame::Naiad => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Naiad), provider.get())? - .with_frame(PyFrame::Naiad), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Naiad), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Naiad), - )), - }, - PyFrame::Thalassa => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Thalassa), provider.get())? - .with_frame(PyFrame::Thalassa), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Thalassa), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Thalassa), - )), - }, - PyFrame::Despina => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Despina), provider.get())? - .with_frame(PyFrame::Despina), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Despina), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Despina), - )), - }, - PyFrame::Galatea => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Galatea), provider.get())? - .with_frame(PyFrame::Galatea), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Galatea), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Galatea), - )), - }, - PyFrame::Larissa => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Larissa), provider.get())? - .with_frame(PyFrame::Larissa), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Larissa), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Larissa), - )), - }, - PyFrame::Proteus => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Proteus), provider.get())? - .with_frame(PyFrame::Proteus), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Proteus), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Proteus), - )), - }, - PyFrame::Halimede => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Halimede), provider.get())? - .with_frame(PyFrame::Halimede), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Halimede), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Halimede), - )), - }, - PyFrame::Psamathe => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Psamathe), provider.get())? - .with_frame(PyFrame::Psamathe), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Psamathe), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Psamathe), - )), - }, - PyFrame::Sao => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Sao), provider.get())? - .with_frame(PyFrame::Sao), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Sao), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Sao), - )), - }, - PyFrame::Laomedeia => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Laomedeia), provider.get())? - .with_frame(PyFrame::Laomedeia), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Laomedeia), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Laomedeia), - )), - }, - PyFrame::Neso => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Neso), provider.get())? - .with_frame(PyFrame::Neso), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Neso), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Neso), - )), - }, - PyFrame::Charon => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Charon), provider.get())? - .with_frame(PyFrame::Charon), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Charon), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Charon), - )), - }, - PyFrame::Nix => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Nix), provider.get())? - .with_frame(PyFrame::Nix), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Nix), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Nix), - )), - }, - PyFrame::Hydra => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Hydra), provider.get())? - .with_frame(PyFrame::Hydra), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Hydra), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Hydra), - )), - }, - PyFrame::Kerberos => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Kerberos), provider.get())? - .with_frame(PyFrame::Kerberos), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Kerberos), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Kerberos), - )), - }, - PyFrame::Styx => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Styx), provider.get())? - .with_frame(PyFrame::Styx), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Styx), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Styx), - )), - }, - PyFrame::Gaspra => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Gaspra), provider.get())? - .with_frame(PyFrame::Gaspra), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Gaspra), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Gaspra), - )), - }, - PyFrame::Ida => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Ida), provider.get())? - .with_frame(PyFrame::Ida), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Ida), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Ida), - )), - }, - PyFrame::Dactyl => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Dactyl), provider.get())? - .with_frame(PyFrame::Dactyl), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Dactyl), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Dactyl), - )), - }, - PyFrame::Ceres => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Ceres), provider.get())? - .with_frame(PyFrame::Ceres), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Ceres), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Ceres), - )), - }, - PyFrame::Pallas => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Pallas), provider.get())? - .with_frame(PyFrame::Pallas), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Pallas), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Pallas), - )), - }, - PyFrame::Vesta => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Vesta), provider.get())? - .with_frame(PyFrame::Vesta), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Vesta), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Vesta), - )), - }, - PyFrame::Psyche => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Psyche), provider.get())? - .with_frame(PyFrame::Psyche), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Psyche), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Psyche), - )), - }, - PyFrame::Lutetia => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Lutetia), provider.get())? - .with_frame(PyFrame::Lutetia), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Lutetia), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Lutetia), - )), - }, - PyFrame::Kleopatra => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Kleopatra), provider.get())? - .with_frame(PyFrame::Kleopatra), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Kleopatra), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Kleopatra), - )), - }, - PyFrame::Eros => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Eros), provider.get())? - .with_frame(PyFrame::Eros), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Eros), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Eros), - )), - }, - PyFrame::Davida => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Davida), provider.get())? - .with_frame(PyFrame::Davida), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Davida), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Davida), - )), - }, - PyFrame::Mathilde => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Mathilde), provider.get())? - .with_frame(PyFrame::Mathilde), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Mathilde), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Mathilde), - )), - }, - PyFrame::Steins => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Steins), provider.get())? - .with_frame(PyFrame::Steins), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Steins), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Steins), - )), - }, - PyFrame::Braille => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Braille), provider.get())? - .with_frame(PyFrame::Braille), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Braille), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Braille), - )), - }, - PyFrame::WilsonHarrington => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(WilsonHarrington), provider.get())? - .with_frame(PyFrame::WilsonHarrington), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(WilsonHarrington), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::WilsonHarrington), - )), - }, - PyFrame::Toutatis => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Toutatis), provider.get())? - .with_frame(PyFrame::Toutatis), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Toutatis), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Toutatis), - )), - }, - PyFrame::Itokawa => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Itokawa), provider.get())? - .with_frame(PyFrame::Itokawa), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Itokawa), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Itokawa), - )), - }, - PyFrame::Bennu => match provider { - Some(provider) => Ok(PyState( - self.try_to_frame(BodyFixed(Bennu), provider.get())? - .with_frame(PyFrame::Bennu), - )), - None => Ok(PyState( - self.try_to_frame(BodyFixed(Bennu), &PyNoOpOffsetProvider)? - .with_frame(PyFrame::Bennu), - )), - }, - } - } -} -impl ReferenceFrame for PyFrame { - fn name(&self) -> String { - match self { - PyFrame::Icrf => "International Celestial Reference Frame".to_string(), - PyFrame::Sun => "IAU Body-Fixed Frame for the Sun".to_string(), - PyFrame::Mercury => "IAU Body-Fixed Frame for Mercury".to_string(), - PyFrame::Venus => "IAU Body-Fixed Frame for Venus".to_string(), - PyFrame::Earth => "IAU Body-Fixed Frame for Earth".to_string(), - PyFrame::Mars => "IAU Body-Fixed Frame for Mars".to_string(), - PyFrame::Jupiter => "IAU Body-Fixed Frame for Jupiter".to_string(), - PyFrame::Saturn => "IAU Body-Fixed Frame for Saturn".to_string(), - PyFrame::Uranus => "IAU Body-Fixed Frame for Uranus".to_string(), - PyFrame::Neptune => "IAU Body-Fixed Frame for Neptune".to_string(), - PyFrame::Pluto => "IAU Body-Fixed Frame for Pluto".to_string(), - PyFrame::Moon => "IAU Body-Fixed Frame for the Moon".to_string(), - PyFrame::Phobos => "IAU Body-Fixed Frame for Phobos".to_string(), - PyFrame::Deimos => "IAU Body-Fixed Frame for Deimos".to_string(), - PyFrame::Io => "IAU Body-Fixed Frame for Io".to_string(), - PyFrame::Europa => "IAU Body-Fixed Frame for Europa".to_string(), - PyFrame::Ganymede => "IAU Body-Fixed Frame for Ganymede".to_string(), - PyFrame::Callisto => "IAU Body-Fixed Frame for Callisto".to_string(), - PyFrame::Amalthea => "IAU Body-Fixed Frame for Amalthea".to_string(), - PyFrame::Himalia => "IAU Body-Fixed Frame for Himalia".to_string(), - PyFrame::Elara => "IAU Body-Fixed Frame for Elara".to_string(), - PyFrame::Pasiphae => "IAU Body-Fixed Frame for Pasiphae".to_string(), - PyFrame::Sinope => "IAU Body-Fixed Frame for Sinope".to_string(), - PyFrame::Lysithea => "IAU Body-Fixed Frame for Lysithea".to_string(), - PyFrame::Carme => "IAU Body-Fixed Frame for Carme".to_string(), - PyFrame::Ananke => "IAU Body-Fixed Frame for Ananke".to_string(), - PyFrame::Leda => "IAU Body-Fixed Frame for Leda".to_string(), - PyFrame::Thebe => "IAU Body-Fixed Frame for Thebe".to_string(), - PyFrame::Adrastea => "IAU Body-Fixed Frame for Adrastea".to_string(), - PyFrame::Metis => "IAU Body-Fixed Frame for Metis".to_string(), - PyFrame::Callirrhoe => "IAU Body-Fixed Frame for Callirrhoe".to_string(), - PyFrame::Themisto => "IAU Body-Fixed Frame for Themisto".to_string(), - PyFrame::Magaclite => "IAU Body-Fixed Frame for Magaclite".to_string(), - PyFrame::Taygete => "IAU Body-Fixed Frame for Taygete".to_string(), - PyFrame::Chaldene => "IAU Body-Fixed Frame for Chaldene".to_string(), - PyFrame::Harpalyke => "IAU Body-Fixed Frame for Harpalyke".to_string(), - PyFrame::Kalyke => "IAU Body-Fixed Frame for Kalyke".to_string(), - PyFrame::Iocaste => "IAU Body-Fixed Frame for Iocaste".to_string(), - PyFrame::Erinome => "IAU Body-Fixed Frame for Erinome".to_string(), - PyFrame::Isonoe => "IAU Body-Fixed Frame for Isonoe".to_string(), - PyFrame::Praxidike => "IAU Body-Fixed Frame for Praxidike".to_string(), - PyFrame::Autonoe => "IAU Body-Fixed Frame for Autonoe".to_string(), - PyFrame::Thyone => "IAU Body-Fixed Frame for Thyone".to_string(), - PyFrame::Hermippe => "IAU Body-Fixed Frame for Hermippe".to_string(), - PyFrame::Aitne => "IAU Body-Fixed Frame for Aitne".to_string(), - PyFrame::Eurydome => "IAU Body-Fixed Frame for Eurydome".to_string(), - PyFrame::Euanthe => "IAU Body-Fixed Frame for Euanthe".to_string(), - PyFrame::Euporie => "IAU Body-Fixed Frame for Euporie".to_string(), - PyFrame::Orthosie => "IAU Body-Fixed Frame for Orthosie".to_string(), - PyFrame::Sponde => "IAU Body-Fixed Frame for Sponde".to_string(), - PyFrame::Kale => "IAU Body-Fixed Frame for Kale".to_string(), - PyFrame::Pasithee => "IAU Body-Fixed Frame for Pasithee".to_string(), - PyFrame::Hegemone => "IAU Body-Fixed Frame for Hegemone".to_string(), - PyFrame::Mneme => "IAU Body-Fixed Frame for Mneme".to_string(), - PyFrame::Aoede => "IAU Body-Fixed Frame for Aoede".to_string(), - PyFrame::Thelxinoe => "IAU Body-Fixed Frame for Thelxinoe".to_string(), - PyFrame::Arche => "IAU Body-Fixed Frame for Arche".to_string(), - PyFrame::Kallichore => "IAU Body-Fixed Frame for Kallichore".to_string(), - PyFrame::Helike => "IAU Body-Fixed Frame for Helike".to_string(), - PyFrame::Carpo => "IAU Body-Fixed Frame for Carpo".to_string(), - PyFrame::Eukelade => "IAU Body-Fixed Frame for Eukelade".to_string(), - PyFrame::Cyllene => "IAU Body-Fixed Frame for Cyllene".to_string(), - PyFrame::Kore => "IAU Body-Fixed Frame for Kore".to_string(), - PyFrame::Herse => "IAU Body-Fixed Frame for Herse".to_string(), - PyFrame::Dia => "IAU Body-Fixed Frame for Dia".to_string(), - PyFrame::Mimas => "IAU Body-Fixed Frame for Mimas".to_string(), - PyFrame::Enceladus => "IAU Body-Fixed Frame for Enceladus".to_string(), - PyFrame::Tethys => "IAU Body-Fixed Frame for Tethys".to_string(), - PyFrame::Dione => "IAU Body-Fixed Frame for Dione".to_string(), - PyFrame::Rhea => "IAU Body-Fixed Frame for Rhea".to_string(), - PyFrame::Titan => "IAU Body-Fixed Frame for Titan".to_string(), - PyFrame::Hyperion => "IAU Body-Fixed Frame for Hyperion".to_string(), - PyFrame::Iapetus => "IAU Body-Fixed Frame for Iapetus".to_string(), - PyFrame::Phoebe => "IAU Body-Fixed Frame for Phoebe".to_string(), - PyFrame::Janus => "IAU Body-Fixed Frame for Janus".to_string(), - PyFrame::Epimetheus => "IAU Body-Fixed Frame for Epimetheus".to_string(), - PyFrame::Helene => "IAU Body-Fixed Frame for Helene".to_string(), - PyFrame::Telesto => "IAU Body-Fixed Frame for Telesto".to_string(), - PyFrame::Calypso => "IAU Body-Fixed Frame for Calypso".to_string(), - PyFrame::Atlas => "IAU Body-Fixed Frame for Atlas".to_string(), - PyFrame::Prometheus => "IAU Body-Fixed Frame for Prometheus".to_string(), - PyFrame::Pandora => "IAU Body-Fixed Frame for Pandora".to_string(), - PyFrame::Pan => "IAU Body-Fixed Frame for Pan".to_string(), - PyFrame::Ymir => "IAU Body-Fixed Frame for Ymir".to_string(), - PyFrame::Paaliaq => "IAU Body-Fixed Frame for Paaliaq".to_string(), - PyFrame::Tarvos => "IAU Body-Fixed Frame for Tarvos".to_string(), - PyFrame::Ijiraq => "IAU Body-Fixed Frame for Ijiraq".to_string(), - PyFrame::Suttungr => "IAU Body-Fixed Frame for Suttungr".to_string(), - PyFrame::Kiviuq => "IAU Body-Fixed Frame for Kiviuq".to_string(), - PyFrame::Mundilfari => "IAU Body-Fixed Frame for Mundilfari".to_string(), - PyFrame::Albiorix => "IAU Body-Fixed Frame for Albiorix".to_string(), - PyFrame::Skathi => "IAU Body-Fixed Frame for Skathi".to_string(), - PyFrame::Erriapus => "IAU Body-Fixed Frame for Erriapus".to_string(), - PyFrame::Siarnaq => "IAU Body-Fixed Frame for Siarnaq".to_string(), - PyFrame::Thrymr => "IAU Body-Fixed Frame for Thrymr".to_string(), - PyFrame::Narvi => "IAU Body-Fixed Frame for Narvi".to_string(), - PyFrame::Methone => "IAU Body-Fixed Frame for Methone".to_string(), - PyFrame::Pallene => "IAU Body-Fixed Frame for Pallene".to_string(), - PyFrame::Polydeuces => "IAU Body-Fixed Frame for Polydeuces".to_string(), - PyFrame::Daphnis => "IAU Body-Fixed Frame for Daphnis".to_string(), - PyFrame::Aegir => "IAU Body-Fixed Frame for Aegir".to_string(), - PyFrame::Bebhionn => "IAU Body-Fixed Frame for Bebhionn".to_string(), - PyFrame::Bergelmir => "IAU Body-Fixed Frame for Bergelmir".to_string(), - PyFrame::Bestla => "IAU Body-Fixed Frame for Bestla".to_string(), - PyFrame::Farbauti => "IAU Body-Fixed Frame for Farbauti".to_string(), - PyFrame::Fenrir => "IAU Body-Fixed Frame for Fenrir".to_string(), - PyFrame::Fornjot => "IAU Body-Fixed Frame for Fornjot".to_string(), - PyFrame::Hati => "IAU Body-Fixed Frame for Hati".to_string(), - PyFrame::Hyrrokkin => "IAU Body-Fixed Frame for Hyrrokkin".to_string(), - PyFrame::Kari => "IAU Body-Fixed Frame for Kari".to_string(), - PyFrame::Loge => "IAU Body-Fixed Frame for Loge".to_string(), - PyFrame::Skoll => "IAU Body-Fixed Frame for Skoll".to_string(), - PyFrame::Surtur => "IAU Body-Fixed Frame for Surtur".to_string(), - PyFrame::Anthe => "IAU Body-Fixed Frame for Anthe".to_string(), - PyFrame::Jarnsaxa => "IAU Body-Fixed Frame for Jarnsaxa".to_string(), - PyFrame::Greip => "IAU Body-Fixed Frame for Greip".to_string(), - PyFrame::Tarqeq => "IAU Body-Fixed Frame for Tarqeq".to_string(), - PyFrame::Aegaeon => "IAU Body-Fixed Frame for Aegaeon".to_string(), - PyFrame::Ariel => "IAU Body-Fixed Frame for Ariel".to_string(), - PyFrame::Umbriel => "IAU Body-Fixed Frame for Umbriel".to_string(), - PyFrame::Titania => "IAU Body-Fixed Frame for Titania".to_string(), - PyFrame::Oberon => "IAU Body-Fixed Frame for Oberon".to_string(), - PyFrame::Miranda => "IAU Body-Fixed Frame for Miranda".to_string(), - PyFrame::Cordelia => "IAU Body-Fixed Frame for Cordelia".to_string(), - PyFrame::Ophelia => "IAU Body-Fixed Frame for Ophelia".to_string(), - PyFrame::Bianca => "IAU Body-Fixed Frame for Bianca".to_string(), - PyFrame::Cressida => "IAU Body-Fixed Frame for Cressida".to_string(), - PyFrame::Desdemona => "IAU Body-Fixed Frame for Desdemona".to_string(), - PyFrame::Juliet => "IAU Body-Fixed Frame for Juliet".to_string(), - PyFrame::Portia => "IAU Body-Fixed Frame for Portia".to_string(), - PyFrame::Rosalind => "IAU Body-Fixed Frame for Rosalind".to_string(), - PyFrame::Belinda => "IAU Body-Fixed Frame for Belinda".to_string(), - PyFrame::Puck => "IAU Body-Fixed Frame for Puck".to_string(), - PyFrame::Caliban => "IAU Body-Fixed Frame for Caliban".to_string(), - PyFrame::Sycorax => "IAU Body-Fixed Frame for Sycorax".to_string(), - PyFrame::Prospero => "IAU Body-Fixed Frame for Prospero".to_string(), - PyFrame::Setebos => "IAU Body-Fixed Frame for Setebos".to_string(), - PyFrame::Stephano => "IAU Body-Fixed Frame for Stephano".to_string(), - PyFrame::Trinculo => "IAU Body-Fixed Frame for Trinculo".to_string(), - PyFrame::Francisco => "IAU Body-Fixed Frame for Francisco".to_string(), - PyFrame::Margaret => "IAU Body-Fixed Frame for Margaret".to_string(), - PyFrame::Ferdinand => "IAU Body-Fixed Frame for Ferdinand".to_string(), - PyFrame::Perdita => "IAU Body-Fixed Frame for Perdita".to_string(), - PyFrame::Mab => "IAU Body-Fixed Frame for Mab".to_string(), - PyFrame::Cupid => "IAU Body-Fixed Frame for Cupid".to_string(), - PyFrame::Triton => "IAU Body-Fixed Frame for Triton".to_string(), - PyFrame::Nereid => "IAU Body-Fixed Frame for Nereid".to_string(), - PyFrame::Naiad => "IAU Body-Fixed Frame for Naiad".to_string(), - PyFrame::Thalassa => "IAU Body-Fixed Frame for Thalassa".to_string(), - PyFrame::Despina => "IAU Body-Fixed Frame for Despina".to_string(), - PyFrame::Galatea => "IAU Body-Fixed Frame for Galatea".to_string(), - PyFrame::Larissa => "IAU Body-Fixed Frame for Larissa".to_string(), - PyFrame::Proteus => "IAU Body-Fixed Frame for Proteus".to_string(), - PyFrame::Halimede => "IAU Body-Fixed Frame for Halimede".to_string(), - PyFrame::Psamathe => "IAU Body-Fixed Frame for Psamathe".to_string(), - PyFrame::Sao => "IAU Body-Fixed Frame for Sao".to_string(), - PyFrame::Laomedeia => "IAU Body-Fixed Frame for Laomedeia".to_string(), - PyFrame::Neso => "IAU Body-Fixed Frame for Neso".to_string(), - PyFrame::Charon => "IAU Body-Fixed Frame for Charon".to_string(), - PyFrame::Nix => "IAU Body-Fixed Frame for Nix".to_string(), - PyFrame::Hydra => "IAU Body-Fixed Frame for Hydra".to_string(), - PyFrame::Kerberos => "IAU Body-Fixed Frame for Kerberos".to_string(), - PyFrame::Styx => "IAU Body-Fixed Frame for Styx".to_string(), - PyFrame::Gaspra => "IAU Body-Fixed Frame for Gaspra".to_string(), - PyFrame::Ida => "IAU Body-Fixed Frame for Ida".to_string(), - PyFrame::Dactyl => "IAU Body-Fixed Frame for Dactyl".to_string(), - PyFrame::Ceres => "IAU Body-Fixed Frame for Ceres".to_string(), - PyFrame::Pallas => "IAU Body-Fixed Frame for Pallas".to_string(), - PyFrame::Vesta => "IAU Body-Fixed Frame for Vesta".to_string(), - PyFrame::Psyche => "IAU Body-Fixed Frame for Psyche".to_string(), - PyFrame::Lutetia => "IAU Body-Fixed Frame for Lutetia".to_string(), - PyFrame::Kleopatra => "IAU Body-Fixed Frame for Kleopatra".to_string(), - PyFrame::Eros => "IAU Body-Fixed Frame for Eros".to_string(), - PyFrame::Davida => "IAU Body-Fixed Frame for Davida".to_string(), - PyFrame::Mathilde => "IAU Body-Fixed Frame for Mathilde".to_string(), - PyFrame::Steins => "IAU Body-Fixed Frame for Steins".to_string(), - PyFrame::Braille => "IAU Body-Fixed Frame for Braille".to_string(), - PyFrame::WilsonHarrington => "IAU Body-Fixed Frame for Wilson-Harrington".to_string(), - PyFrame::Toutatis => "IAU Body-Fixed Frame for Toutatis".to_string(), - PyFrame::Itokawa => "IAU Body-Fixed Frame for Itokawa".to_string(), - PyFrame::Bennu => "IAU Body-Fixed Frame for Bennu".to_string(), - } - } - fn abbreviation(&self) -> String { - match self { - PyFrame::Icrf => "ICRF".to_string(), - PyFrame::Sun => "IAU_SUN".to_string(), - PyFrame::Mercury => "IAU_MERCURY".to_string(), - PyFrame::Venus => "IAU_VENUS".to_string(), - PyFrame::Earth => "IAU_EARTH".to_string(), - PyFrame::Mars => "IAU_MARS".to_string(), - PyFrame::Jupiter => "IAU_JUPITER".to_string(), - PyFrame::Saturn => "IAU_SATURN".to_string(), - PyFrame::Uranus => "IAU_URANUS".to_string(), - PyFrame::Neptune => "IAU_NEPTUNE".to_string(), - PyFrame::Pluto => "IAU_PLUTO".to_string(), - PyFrame::Moon => "IAU_MOON".to_string(), - PyFrame::Phobos => "IAU_PHOBOS".to_string(), - PyFrame::Deimos => "IAU_DEIMOS".to_string(), - PyFrame::Io => "IAU_IO".to_string(), - PyFrame::Europa => "IAU_EUROPA".to_string(), - PyFrame::Ganymede => "IAU_GANYMEDE".to_string(), - PyFrame::Callisto => "IAU_CALLISTO".to_string(), - PyFrame::Amalthea => "IAU_AMALTHEA".to_string(), - PyFrame::Himalia => "IAU_HIMALIA".to_string(), - PyFrame::Elara => "IAU_ELARA".to_string(), - PyFrame::Pasiphae => "IAU_PASIPHAE".to_string(), - PyFrame::Sinope => "IAU_SINOPE".to_string(), - PyFrame::Lysithea => "IAU_LYSITHEA".to_string(), - PyFrame::Carme => "IAU_CARME".to_string(), - PyFrame::Ananke => "IAU_ANANKE".to_string(), - PyFrame::Leda => "IAU_LEDA".to_string(), - PyFrame::Thebe => "IAU_THEBE".to_string(), - PyFrame::Adrastea => "IAU_ADRASTEA".to_string(), - PyFrame::Metis => "IAU_METIS".to_string(), - PyFrame::Callirrhoe => "IAU_CALLIRRHOE".to_string(), - PyFrame::Themisto => "IAU_THEMISTO".to_string(), - PyFrame::Magaclite => "IAU_MAGACLITE".to_string(), - PyFrame::Taygete => "IAU_TAYGETE".to_string(), - PyFrame::Chaldene => "IAU_CHALDENE".to_string(), - PyFrame::Harpalyke => "IAU_HARPALYKE".to_string(), - PyFrame::Kalyke => "IAU_KALYKE".to_string(), - PyFrame::Iocaste => "IAU_IOCASTE".to_string(), - PyFrame::Erinome => "IAU_ERINOME".to_string(), - PyFrame::Isonoe => "IAU_ISONOE".to_string(), - PyFrame::Praxidike => "IAU_PRAXIDIKE".to_string(), - PyFrame::Autonoe => "IAU_AUTONOE".to_string(), - PyFrame::Thyone => "IAU_THYONE".to_string(), - PyFrame::Hermippe => "IAU_HERMIPPE".to_string(), - PyFrame::Aitne => "IAU_AITNE".to_string(), - PyFrame::Eurydome => "IAU_EURYDOME".to_string(), - PyFrame::Euanthe => "IAU_EUANTHE".to_string(), - PyFrame::Euporie => "IAU_EUPORIE".to_string(), - PyFrame::Orthosie => "IAU_ORTHOSIE".to_string(), - PyFrame::Sponde => "IAU_SPONDE".to_string(), - PyFrame::Kale => "IAU_KALE".to_string(), - PyFrame::Pasithee => "IAU_PASITHEE".to_string(), - PyFrame::Hegemone => "IAU_HEGEMONE".to_string(), - PyFrame::Mneme => "IAU_MNEME".to_string(), - PyFrame::Aoede => "IAU_AOEDE".to_string(), - PyFrame::Thelxinoe => "IAU_THELXINOE".to_string(), - PyFrame::Arche => "IAU_ARCHE".to_string(), - PyFrame::Kallichore => "IAU_KALLICHORE".to_string(), - PyFrame::Helike => "IAU_HELIKE".to_string(), - PyFrame::Carpo => "IAU_CARPO".to_string(), - PyFrame::Eukelade => "IAU_EUKELADE".to_string(), - PyFrame::Cyllene => "IAU_CYLLENE".to_string(), - PyFrame::Kore => "IAU_KORE".to_string(), - PyFrame::Herse => "IAU_HERSE".to_string(), - PyFrame::Dia => "IAU_DIA".to_string(), - PyFrame::Mimas => "IAU_MIMAS".to_string(), - PyFrame::Enceladus => "IAU_ENCELADUS".to_string(), - PyFrame::Tethys => "IAU_TETHYS".to_string(), - PyFrame::Dione => "IAU_DIONE".to_string(), - PyFrame::Rhea => "IAU_RHEA".to_string(), - PyFrame::Titan => "IAU_TITAN".to_string(), - PyFrame::Hyperion => "IAU_HYPERION".to_string(), - PyFrame::Iapetus => "IAU_IAPETUS".to_string(), - PyFrame::Phoebe => "IAU_PHOEBE".to_string(), - PyFrame::Janus => "IAU_JANUS".to_string(), - PyFrame::Epimetheus => "IAU_EPIMETHEUS".to_string(), - PyFrame::Helene => "IAU_HELENE".to_string(), - PyFrame::Telesto => "IAU_TELESTO".to_string(), - PyFrame::Calypso => "IAU_CALYPSO".to_string(), - PyFrame::Atlas => "IAU_ATLAS".to_string(), - PyFrame::Prometheus => "IAU_PROMETHEUS".to_string(), - PyFrame::Pandora => "IAU_PANDORA".to_string(), - PyFrame::Pan => "IAU_PAN".to_string(), - PyFrame::Ymir => "IAU_YMIR".to_string(), - PyFrame::Paaliaq => "IAU_PAALIAQ".to_string(), - PyFrame::Tarvos => "IAU_TARVOS".to_string(), - PyFrame::Ijiraq => "IAU_IJIRAQ".to_string(), - PyFrame::Suttungr => "IAU_SUTTUNGR".to_string(), - PyFrame::Kiviuq => "IAU_KIVIUQ".to_string(), - PyFrame::Mundilfari => "IAU_MUNDILFARI".to_string(), - PyFrame::Albiorix => "IAU_ALBIORIX".to_string(), - PyFrame::Skathi => "IAU_SKATHI".to_string(), - PyFrame::Erriapus => "IAU_ERRIAPUS".to_string(), - PyFrame::Siarnaq => "IAU_SIARNAQ".to_string(), - PyFrame::Thrymr => "IAU_THRYMR".to_string(), - PyFrame::Narvi => "IAU_NARVI".to_string(), - PyFrame::Methone => "IAU_METHONE".to_string(), - PyFrame::Pallene => "IAU_PALLENE".to_string(), - PyFrame::Polydeuces => "IAU_POLYDEUCES".to_string(), - PyFrame::Daphnis => "IAU_DAPHNIS".to_string(), - PyFrame::Aegir => "IAU_AEGIR".to_string(), - PyFrame::Bebhionn => "IAU_BEBHIONN".to_string(), - PyFrame::Bergelmir => "IAU_BERGELMIR".to_string(), - PyFrame::Bestla => "IAU_BESTLA".to_string(), - PyFrame::Farbauti => "IAU_FARBAUTI".to_string(), - PyFrame::Fenrir => "IAU_FENRIR".to_string(), - PyFrame::Fornjot => "IAU_FORNJOT".to_string(), - PyFrame::Hati => "IAU_HATI".to_string(), - PyFrame::Hyrrokkin => "IAU_HYRROKKIN".to_string(), - PyFrame::Kari => "IAU_KARI".to_string(), - PyFrame::Loge => "IAU_LOGE".to_string(), - PyFrame::Skoll => "IAU_SKOLL".to_string(), - PyFrame::Surtur => "IAU_SURTUR".to_string(), - PyFrame::Anthe => "IAU_ANTHE".to_string(), - PyFrame::Jarnsaxa => "IAU_JARNSAXA".to_string(), - PyFrame::Greip => "IAU_GREIP".to_string(), - PyFrame::Tarqeq => "IAU_TARQEQ".to_string(), - PyFrame::Aegaeon => "IAU_AEGAEON".to_string(), - PyFrame::Ariel => "IAU_ARIEL".to_string(), - PyFrame::Umbriel => "IAU_UMBRIEL".to_string(), - PyFrame::Titania => "IAU_TITANIA".to_string(), - PyFrame::Oberon => "IAU_OBERON".to_string(), - PyFrame::Miranda => "IAU_MIRANDA".to_string(), - PyFrame::Cordelia => "IAU_CORDELIA".to_string(), - PyFrame::Ophelia => "IAU_OPHELIA".to_string(), - PyFrame::Bianca => "IAU_BIANCA".to_string(), - PyFrame::Cressida => "IAU_CRESSIDA".to_string(), - PyFrame::Desdemona => "IAU_DESDEMONA".to_string(), - PyFrame::Juliet => "IAU_JULIET".to_string(), - PyFrame::Portia => "IAU_PORTIA".to_string(), - PyFrame::Rosalind => "IAU_ROSALIND".to_string(), - PyFrame::Belinda => "IAU_BELINDA".to_string(), - PyFrame::Puck => "IAU_PUCK".to_string(), - PyFrame::Caliban => "IAU_CALIBAN".to_string(), - PyFrame::Sycorax => "IAU_SYCORAX".to_string(), - PyFrame::Prospero => "IAU_PROSPERO".to_string(), - PyFrame::Setebos => "IAU_SETEBOS".to_string(), - PyFrame::Stephano => "IAU_STEPHANO".to_string(), - PyFrame::Trinculo => "IAU_TRINCULO".to_string(), - PyFrame::Francisco => "IAU_FRANCISCO".to_string(), - PyFrame::Margaret => "IAU_MARGARET".to_string(), - PyFrame::Ferdinand => "IAU_FERDINAND".to_string(), - PyFrame::Perdita => "IAU_PERDITA".to_string(), - PyFrame::Mab => "IAU_MAB".to_string(), - PyFrame::Cupid => "IAU_CUPID".to_string(), - PyFrame::Triton => "IAU_TRITON".to_string(), - PyFrame::Nereid => "IAU_NEREID".to_string(), - PyFrame::Naiad => "IAU_NAIAD".to_string(), - PyFrame::Thalassa => "IAU_THALASSA".to_string(), - PyFrame::Despina => "IAU_DESPINA".to_string(), - PyFrame::Galatea => "IAU_GALATEA".to_string(), - PyFrame::Larissa => "IAU_LARISSA".to_string(), - PyFrame::Proteus => "IAU_PROTEUS".to_string(), - PyFrame::Halimede => "IAU_HALIMEDE".to_string(), - PyFrame::Psamathe => "IAU_PSAMATHE".to_string(), - PyFrame::Sao => "IAU_SAO".to_string(), - PyFrame::Laomedeia => "IAU_LAOMEDEIA".to_string(), - PyFrame::Neso => "IAU_NESO".to_string(), - PyFrame::Charon => "IAU_CHARON".to_string(), - PyFrame::Nix => "IAU_NIX".to_string(), - PyFrame::Hydra => "IAU_HYDRA".to_string(), - PyFrame::Kerberos => "IAU_KERBEROS".to_string(), - PyFrame::Styx => "IAU_STYX".to_string(), - PyFrame::Gaspra => "IAU_GASPRA".to_string(), - PyFrame::Ida => "IAU_IDA".to_string(), - PyFrame::Dactyl => "IAU_DACTYL".to_string(), - PyFrame::Ceres => "IAU_CERES".to_string(), - PyFrame::Pallas => "IAU_PALLAS".to_string(), - PyFrame::Vesta => "IAU_VESTA".to_string(), - PyFrame::Psyche => "IAU_PSYCHE".to_string(), - PyFrame::Lutetia => "IAU_LUTETIA".to_string(), - PyFrame::Kleopatra => "IAU_KLEOPATRA".to_string(), - PyFrame::Eros => "IAU_EROS".to_string(), - PyFrame::Davida => "IAU_DAVIDA".to_string(), - PyFrame::Mathilde => "IAU_MATHILDE".to_string(), - PyFrame::Steins => "IAU_STEINS".to_string(), - PyFrame::Braille => "IAU_BRAILLE".to_string(), - PyFrame::WilsonHarrington => "IAU_WILSON_HARRINGTON".to_string(), - PyFrame::Toutatis => "IAU_TOUTATIS".to_string(), - PyFrame::Itokawa => "IAU_ITOKAWA".to_string(), - PyFrame::Bennu => "IAU_BENNU".to_string(), - } - } -} -impl FromStr for PyFrame { - type Err = PyErr; - fn from_str(s: &str) -> Result { - match s { - "ICRF" | "icrf" => Ok(PyFrame::Icrf), - "IAU_SUN" | "iau_sun" => Ok(PyFrame::Sun), - "IAU_MERCURY" | "iau_mercury" => Ok(PyFrame::Mercury), - "IAU_VENUS" | "iau_venus" => Ok(PyFrame::Venus), - "IAU_EARTH" | "iau_earth" => Ok(PyFrame::Earth), - "IAU_MARS" | "iau_mars" => Ok(PyFrame::Mars), - "IAU_JUPITER" | "iau_jupiter" => Ok(PyFrame::Jupiter), - "IAU_SATURN" | "iau_saturn" => Ok(PyFrame::Saturn), - "IAU_URANUS" | "iau_uranus" => Ok(PyFrame::Uranus), - "IAU_NEPTUNE" | "iau_neptune" => Ok(PyFrame::Neptune), - "IAU_PLUTO" | "iau_pluto" => Ok(PyFrame::Pluto), - "IAU_MOON" | "iau_moon" => Ok(PyFrame::Moon), - "IAU_PHOBOS" | "iau_phobos" => Ok(PyFrame::Phobos), - "IAU_DEIMOS" | "iau_deimos" => Ok(PyFrame::Deimos), - "IAU_IO" | "iau_io" => Ok(PyFrame::Io), - "IAU_EUROPA" | "iau_europa" => Ok(PyFrame::Europa), - "IAU_GANYMEDE" | "iau_ganymede" => Ok(PyFrame::Ganymede), - "IAU_CALLISTO" | "iau_callisto" => Ok(PyFrame::Callisto), - "IAU_AMALTHEA" | "iau_amalthea" => Ok(PyFrame::Amalthea), - "IAU_HIMALIA" | "iau_himalia" => Ok(PyFrame::Himalia), - "IAU_ELARA" | "iau_elara" => Ok(PyFrame::Elara), - "IAU_PASIPHAE" | "iau_pasiphae" => Ok(PyFrame::Pasiphae), - "IAU_SINOPE" | "iau_sinope" => Ok(PyFrame::Sinope), - "IAU_LYSITHEA" | "iau_lysithea" => Ok(PyFrame::Lysithea), - "IAU_CARME" | "iau_carme" => Ok(PyFrame::Carme), - "IAU_ANANKE" | "iau_ananke" => Ok(PyFrame::Ananke), - "IAU_LEDA" | "iau_leda" => Ok(PyFrame::Leda), - "IAU_THEBE" | "iau_thebe" => Ok(PyFrame::Thebe), - "IAU_ADRASTEA" | "iau_adrastea" => Ok(PyFrame::Adrastea), - "IAU_METIS" | "iau_metis" => Ok(PyFrame::Metis), - "IAU_CALLIRRHOE" | "iau_callirrhoe" => Ok(PyFrame::Callirrhoe), - "IAU_THEMISTO" | "iau_themisto" => Ok(PyFrame::Themisto), - "IAU_MAGACLITE" | "iau_magaclite" => Ok(PyFrame::Magaclite), - "IAU_TAYGETE" | "iau_taygete" => Ok(PyFrame::Taygete), - "IAU_CHALDENE" | "iau_chaldene" => Ok(PyFrame::Chaldene), - "IAU_HARPALYKE" | "iau_harpalyke" => Ok(PyFrame::Harpalyke), - "IAU_KALYKE" | "iau_kalyke" => Ok(PyFrame::Kalyke), - "IAU_IOCASTE" | "iau_iocaste" => Ok(PyFrame::Iocaste), - "IAU_ERINOME" | "iau_erinome" => Ok(PyFrame::Erinome), - "IAU_ISONOE" | "iau_isonoe" => Ok(PyFrame::Isonoe), - "IAU_PRAXIDIKE" | "iau_praxidike" => Ok(PyFrame::Praxidike), - "IAU_AUTONOE" | "iau_autonoe" => Ok(PyFrame::Autonoe), - "IAU_THYONE" | "iau_thyone" => Ok(PyFrame::Thyone), - "IAU_HERMIPPE" | "iau_hermippe" => Ok(PyFrame::Hermippe), - "IAU_AITNE" | "iau_aitne" => Ok(PyFrame::Aitne), - "IAU_EURYDOME" | "iau_eurydome" => Ok(PyFrame::Eurydome), - "IAU_EUANTHE" | "iau_euanthe" => Ok(PyFrame::Euanthe), - "IAU_EUPORIE" | "iau_euporie" => Ok(PyFrame::Euporie), - "IAU_ORTHOSIE" | "iau_orthosie" => Ok(PyFrame::Orthosie), - "IAU_SPONDE" | "iau_sponde" => Ok(PyFrame::Sponde), - "IAU_KALE" | "iau_kale" => Ok(PyFrame::Kale), - "IAU_PASITHEE" | "iau_pasithee" => Ok(PyFrame::Pasithee), - "IAU_HEGEMONE" | "iau_hegemone" => Ok(PyFrame::Hegemone), - "IAU_MNEME" | "iau_mneme" => Ok(PyFrame::Mneme), - "IAU_AOEDE" | "iau_aoede" => Ok(PyFrame::Aoede), - "IAU_THELXINOE" | "iau_thelxinoe" => Ok(PyFrame::Thelxinoe), - "IAU_ARCHE" | "iau_arche" => Ok(PyFrame::Arche), - "IAU_KALLICHORE" | "iau_kallichore" => Ok(PyFrame::Kallichore), - "IAU_HELIKE" | "iau_helike" => Ok(PyFrame::Helike), - "IAU_CARPO" | "iau_carpo" => Ok(PyFrame::Carpo), - "IAU_EUKELADE" | "iau_eukelade" => Ok(PyFrame::Eukelade), - "IAU_CYLLENE" | "iau_cyllene" => Ok(PyFrame::Cyllene), - "IAU_KORE" | "iau_kore" => Ok(PyFrame::Kore), - "IAU_HERSE" | "iau_herse" => Ok(PyFrame::Herse), - "IAU_DIA" | "iau_dia" => Ok(PyFrame::Dia), - "IAU_MIMAS" | "iau_mimas" => Ok(PyFrame::Mimas), - "IAU_ENCELADUS" | "iau_enceladus" => Ok(PyFrame::Enceladus), - "IAU_TETHYS" | "iau_tethys" => Ok(PyFrame::Tethys), - "IAU_DIONE" | "iau_dione" => Ok(PyFrame::Dione), - "IAU_RHEA" | "iau_rhea" => Ok(PyFrame::Rhea), - "IAU_TITAN" | "iau_titan" => Ok(PyFrame::Titan), - "IAU_HYPERION" | "iau_hyperion" => Ok(PyFrame::Hyperion), - "IAU_IAPETUS" | "iau_iapetus" => Ok(PyFrame::Iapetus), - "IAU_PHOEBE" | "iau_phoebe" => Ok(PyFrame::Phoebe), - "IAU_JANUS" | "iau_janus" => Ok(PyFrame::Janus), - "IAU_EPIMETHEUS" | "iau_epimetheus" => Ok(PyFrame::Epimetheus), - "IAU_HELENE" | "iau_helene" => Ok(PyFrame::Helene), - "IAU_TELESTO" | "iau_telesto" => Ok(PyFrame::Telesto), - "IAU_CALYPSO" | "iau_calypso" => Ok(PyFrame::Calypso), - "IAU_ATLAS" | "iau_atlas" => Ok(PyFrame::Atlas), - "IAU_PROMETHEUS" | "iau_prometheus" => Ok(PyFrame::Prometheus), - "IAU_PANDORA" | "iau_pandora" => Ok(PyFrame::Pandora), - "IAU_PAN" | "iau_pan" => Ok(PyFrame::Pan), - "IAU_YMIR" | "iau_ymir" => Ok(PyFrame::Ymir), - "IAU_PAALIAQ" | "iau_paaliaq" => Ok(PyFrame::Paaliaq), - "IAU_TARVOS" | "iau_tarvos" => Ok(PyFrame::Tarvos), - "IAU_IJIRAQ" | "iau_ijiraq" => Ok(PyFrame::Ijiraq), - "IAU_SUTTUNGR" | "iau_suttungr" => Ok(PyFrame::Suttungr), - "IAU_KIVIUQ" | "iau_kiviuq" => Ok(PyFrame::Kiviuq), - "IAU_MUNDILFARI" | "iau_mundilfari" => Ok(PyFrame::Mundilfari), - "IAU_ALBIORIX" | "iau_albiorix" => Ok(PyFrame::Albiorix), - "IAU_SKATHI" | "iau_skathi" => Ok(PyFrame::Skathi), - "IAU_ERRIAPUS" | "iau_erriapus" => Ok(PyFrame::Erriapus), - "IAU_SIARNAQ" | "iau_siarnaq" => Ok(PyFrame::Siarnaq), - "IAU_THRYMR" | "iau_thrymr" => Ok(PyFrame::Thrymr), - "IAU_NARVI" | "iau_narvi" => Ok(PyFrame::Narvi), - "IAU_METHONE" | "iau_methone" => Ok(PyFrame::Methone), - "IAU_PALLENE" | "iau_pallene" => Ok(PyFrame::Pallene), - "IAU_POLYDEUCES" | "iau_polydeuces" => Ok(PyFrame::Polydeuces), - "IAU_DAPHNIS" | "iau_daphnis" => Ok(PyFrame::Daphnis), - "IAU_AEGIR" | "iau_aegir" => Ok(PyFrame::Aegir), - "IAU_BEBHIONN" | "iau_bebhionn" => Ok(PyFrame::Bebhionn), - "IAU_BERGELMIR" | "iau_bergelmir" => Ok(PyFrame::Bergelmir), - "IAU_BESTLA" | "iau_bestla" => Ok(PyFrame::Bestla), - "IAU_FARBAUTI" | "iau_farbauti" => Ok(PyFrame::Farbauti), - "IAU_FENRIR" | "iau_fenrir" => Ok(PyFrame::Fenrir), - "IAU_FORNJOT" | "iau_fornjot" => Ok(PyFrame::Fornjot), - "IAU_HATI" | "iau_hati" => Ok(PyFrame::Hati), - "IAU_HYRROKKIN" | "iau_hyrrokkin" => Ok(PyFrame::Hyrrokkin), - "IAU_KARI" | "iau_kari" => Ok(PyFrame::Kari), - "IAU_LOGE" | "iau_loge" => Ok(PyFrame::Loge), - "IAU_SKOLL" | "iau_skoll" => Ok(PyFrame::Skoll), - "IAU_SURTUR" | "iau_surtur" => Ok(PyFrame::Surtur), - "IAU_ANTHE" | "iau_anthe" => Ok(PyFrame::Anthe), - "IAU_JARNSAXA" | "iau_jarnsaxa" => Ok(PyFrame::Jarnsaxa), - "IAU_GREIP" | "iau_greip" => Ok(PyFrame::Greip), - "IAU_TARQEQ" | "iau_tarqeq" => Ok(PyFrame::Tarqeq), - "IAU_AEGAEON" | "iau_aegaeon" => Ok(PyFrame::Aegaeon), - "IAU_ARIEL" | "iau_ariel" => Ok(PyFrame::Ariel), - "IAU_UMBRIEL" | "iau_umbriel" => Ok(PyFrame::Umbriel), - "IAU_TITANIA" | "iau_titania" => Ok(PyFrame::Titania), - "IAU_OBERON" | "iau_oberon" => Ok(PyFrame::Oberon), - "IAU_MIRANDA" | "iau_miranda" => Ok(PyFrame::Miranda), - "IAU_CORDELIA" | "iau_cordelia" => Ok(PyFrame::Cordelia), - "IAU_OPHELIA" | "iau_ophelia" => Ok(PyFrame::Ophelia), - "IAU_BIANCA" | "iau_bianca" => Ok(PyFrame::Bianca), - "IAU_CRESSIDA" | "iau_cressida" => Ok(PyFrame::Cressida), - "IAU_DESDEMONA" | "iau_desdemona" => Ok(PyFrame::Desdemona), - "IAU_JULIET" | "iau_juliet" => Ok(PyFrame::Juliet), - "IAU_PORTIA" | "iau_portia" => Ok(PyFrame::Portia), - "IAU_ROSALIND" | "iau_rosalind" => Ok(PyFrame::Rosalind), - "IAU_BELINDA" | "iau_belinda" => Ok(PyFrame::Belinda), - "IAU_PUCK" | "iau_puck" => Ok(PyFrame::Puck), - "IAU_CALIBAN" | "iau_caliban" => Ok(PyFrame::Caliban), - "IAU_SYCORAX" | "iau_sycorax" => Ok(PyFrame::Sycorax), - "IAU_PROSPERO" | "iau_prospero" => Ok(PyFrame::Prospero), - "IAU_SETEBOS" | "iau_setebos" => Ok(PyFrame::Setebos), - "IAU_STEPHANO" | "iau_stephano" => Ok(PyFrame::Stephano), - "IAU_TRINCULO" | "iau_trinculo" => Ok(PyFrame::Trinculo), - "IAU_FRANCISCO" | "iau_francisco" => Ok(PyFrame::Francisco), - "IAU_MARGARET" | "iau_margaret" => Ok(PyFrame::Margaret), - "IAU_FERDINAND" | "iau_ferdinand" => Ok(PyFrame::Ferdinand), - "IAU_PERDITA" | "iau_perdita" => Ok(PyFrame::Perdita), - "IAU_MAB" | "iau_mab" => Ok(PyFrame::Mab), - "IAU_CUPID" | "iau_cupid" => Ok(PyFrame::Cupid), - "IAU_TRITON" | "iau_triton" => Ok(PyFrame::Triton), - "IAU_NEREID" | "iau_nereid" => Ok(PyFrame::Nereid), - "IAU_NAIAD" | "iau_naiad" => Ok(PyFrame::Naiad), - "IAU_THALASSA" | "iau_thalassa" => Ok(PyFrame::Thalassa), - "IAU_DESPINA" | "iau_despina" => Ok(PyFrame::Despina), - "IAU_GALATEA" | "iau_galatea" => Ok(PyFrame::Galatea), - "IAU_LARISSA" | "iau_larissa" => Ok(PyFrame::Larissa), - "IAU_PROTEUS" | "iau_proteus" => Ok(PyFrame::Proteus), - "IAU_HALIMEDE" | "iau_halimede" => Ok(PyFrame::Halimede), - "IAU_PSAMATHE" | "iau_psamathe" => Ok(PyFrame::Psamathe), - "IAU_SAO" | "iau_sao" => Ok(PyFrame::Sao), - "IAU_LAOMEDEIA" | "iau_laomedeia" => Ok(PyFrame::Laomedeia), - "IAU_NESO" | "iau_neso" => Ok(PyFrame::Neso), - "IAU_CHARON" | "iau_charon" => Ok(PyFrame::Charon), - "IAU_NIX" | "iau_nix" => Ok(PyFrame::Nix), - "IAU_HYDRA" | "iau_hydra" => Ok(PyFrame::Hydra), - "IAU_KERBEROS" | "iau_kerberos" => Ok(PyFrame::Kerberos), - "IAU_STYX" | "iau_styx" => Ok(PyFrame::Styx), - "IAU_GASPRA" | "iau_gaspra" => Ok(PyFrame::Gaspra), - "IAU_IDA" | "iau_ida" => Ok(PyFrame::Ida), - "IAU_DACTYL" | "iau_dactyl" => Ok(PyFrame::Dactyl), - "IAU_CERES" | "iau_ceres" => Ok(PyFrame::Ceres), - "IAU_PALLAS" | "iau_pallas" => Ok(PyFrame::Pallas), - "IAU_VESTA" | "iau_vesta" => Ok(PyFrame::Vesta), - "IAU_PSYCHE" | "iau_psyche" => Ok(PyFrame::Psyche), - "IAU_LUTETIA" | "iau_lutetia" => Ok(PyFrame::Lutetia), - "IAU_KLEOPATRA" | "iau_kleopatra" => Ok(PyFrame::Kleopatra), - "IAU_EROS" | "iau_eros" => Ok(PyFrame::Eros), - "IAU_DAVIDA" | "iau_davida" => Ok(PyFrame::Davida), - "IAU_MATHILDE" | "iau_mathilde" => Ok(PyFrame::Mathilde), - "IAU_STEINS" | "iau_steins" => Ok(PyFrame::Steins), - "IAU_BRAILLE" | "iau_braille" => Ok(PyFrame::Braille), - "IAU_WILSON_HARRINGTON" | "iau_wilson_harrington" => Ok(PyFrame::WilsonHarrington), - "IAU_TOUTATIS" | "iau_toutatis" => Ok(PyFrame::Toutatis), - "IAU_ITOKAWA" | "iau_itokawa" => Ok(PyFrame::Itokawa), - "IAU_BENNU" | "iau_bennu" => Ok(PyFrame::Bennu), - _ => Err(PyValueError::new_err("unknown reference frame")), - } - } -} -#[cfg(test)] -#[allow(clippy::approx_constant)] -mod tests { - use super::*; - #[test] - fn test_reference_frame_icrf() { - assert_eq!( - PyFrame::Icrf.name(), - "International Celestial Reference Frame" - ); - assert_eq!(PyFrame::Icrf.abbreviation(), "ICRF"); - } - #[test] - fn test_reference_frame_iau_sun() { - assert_eq!(PyFrame::Sun.name(), "IAU Body-Fixed Frame for the Sun"); - assert_eq!(PyFrame::Sun.abbreviation(), "IAU_SUN"); - } - #[test] - fn test_reference_frame_iau_mercury() { - assert_eq!(PyFrame::Mercury.name(), "IAU Body-Fixed Frame for Mercury"); - assert_eq!(PyFrame::Mercury.abbreviation(), "IAU_MERCURY"); - } - #[test] - fn test_reference_frame_iau_venus() { - assert_eq!(PyFrame::Venus.name(), "IAU Body-Fixed Frame for Venus"); - assert_eq!(PyFrame::Venus.abbreviation(), "IAU_VENUS"); - } - #[test] - fn test_reference_frame_iau_earth() { - assert_eq!(PyFrame::Earth.name(), "IAU Body-Fixed Frame for Earth"); - assert_eq!(PyFrame::Earth.abbreviation(), "IAU_EARTH"); - } - #[test] - fn test_reference_frame_iau_mars() { - assert_eq!(PyFrame::Mars.name(), "IAU Body-Fixed Frame for Mars"); - assert_eq!(PyFrame::Mars.abbreviation(), "IAU_MARS"); - } - #[test] - fn test_reference_frame_iau_jupiter() { - assert_eq!(PyFrame::Jupiter.name(), "IAU Body-Fixed Frame for Jupiter"); - assert_eq!(PyFrame::Jupiter.abbreviation(), "IAU_JUPITER"); - } - #[test] - fn test_reference_frame_iau_saturn() { - assert_eq!(PyFrame::Saturn.name(), "IAU Body-Fixed Frame for Saturn"); - assert_eq!(PyFrame::Saturn.abbreviation(), "IAU_SATURN"); - } - #[test] - fn test_reference_frame_iau_uranus() { - assert_eq!(PyFrame::Uranus.name(), "IAU Body-Fixed Frame for Uranus"); - assert_eq!(PyFrame::Uranus.abbreviation(), "IAU_URANUS"); - } - #[test] - fn test_reference_frame_iau_neptune() { - assert_eq!(PyFrame::Neptune.name(), "IAU Body-Fixed Frame for Neptune"); - assert_eq!(PyFrame::Neptune.abbreviation(), "IAU_NEPTUNE"); - } - #[test] - fn test_reference_frame_iau_pluto() { - assert_eq!(PyFrame::Pluto.name(), "IAU Body-Fixed Frame for Pluto"); - assert_eq!(PyFrame::Pluto.abbreviation(), "IAU_PLUTO"); - } - #[test] - fn test_reference_frame_iau_moon() { - assert_eq!(PyFrame::Moon.name(), "IAU Body-Fixed Frame for the Moon"); - assert_eq!(PyFrame::Moon.abbreviation(), "IAU_MOON"); - } - #[test] - fn test_reference_frame_iau_phobos() { - assert_eq!(PyFrame::Phobos.name(), "IAU Body-Fixed Frame for Phobos"); - assert_eq!(PyFrame::Phobos.abbreviation(), "IAU_PHOBOS"); - } - #[test] - fn test_reference_frame_iau_deimos() { - assert_eq!(PyFrame::Deimos.name(), "IAU Body-Fixed Frame for Deimos"); - assert_eq!(PyFrame::Deimos.abbreviation(), "IAU_DEIMOS"); - } - #[test] - fn test_reference_frame_iau_io() { - assert_eq!(PyFrame::Io.name(), "IAU Body-Fixed Frame for Io"); - assert_eq!(PyFrame::Io.abbreviation(), "IAU_IO"); - } - #[test] - fn test_reference_frame_iau_europa() { - assert_eq!(PyFrame::Europa.name(), "IAU Body-Fixed Frame for Europa"); - assert_eq!(PyFrame::Europa.abbreviation(), "IAU_EUROPA"); - } - #[test] - fn test_reference_frame_iau_ganymede() { - assert_eq!( - PyFrame::Ganymede.name(), - "IAU Body-Fixed Frame for Ganymede" - ); - assert_eq!(PyFrame::Ganymede.abbreviation(), "IAU_GANYMEDE"); - } - #[test] - fn test_reference_frame_iau_callisto() { - assert_eq!( - PyFrame::Callisto.name(), - "IAU Body-Fixed Frame for Callisto" - ); - assert_eq!(PyFrame::Callisto.abbreviation(), "IAU_CALLISTO"); - } - #[test] - fn test_reference_frame_iau_amalthea() { - assert_eq!( - PyFrame::Amalthea.name(), - "IAU Body-Fixed Frame for Amalthea" - ); - assert_eq!(PyFrame::Amalthea.abbreviation(), "IAU_AMALTHEA"); - } - #[test] - fn test_reference_frame_iau_himalia() { - assert_eq!(PyFrame::Himalia.name(), "IAU Body-Fixed Frame for Himalia"); - assert_eq!(PyFrame::Himalia.abbreviation(), "IAU_HIMALIA"); - } - #[test] - fn test_reference_frame_iau_elara() { - assert_eq!(PyFrame::Elara.name(), "IAU Body-Fixed Frame for Elara"); - assert_eq!(PyFrame::Elara.abbreviation(), "IAU_ELARA"); - } - #[test] - fn test_reference_frame_iau_pasiphae() { - assert_eq!( - PyFrame::Pasiphae.name(), - "IAU Body-Fixed Frame for Pasiphae" - ); - assert_eq!(PyFrame::Pasiphae.abbreviation(), "IAU_PASIPHAE"); - } - #[test] - fn test_reference_frame_iau_sinope() { - assert_eq!(PyFrame::Sinope.name(), "IAU Body-Fixed Frame for Sinope"); - assert_eq!(PyFrame::Sinope.abbreviation(), "IAU_SINOPE"); - } - #[test] - fn test_reference_frame_iau_lysithea() { - assert_eq!( - PyFrame::Lysithea.name(), - "IAU Body-Fixed Frame for Lysithea" - ); - assert_eq!(PyFrame::Lysithea.abbreviation(), "IAU_LYSITHEA"); - } - #[test] - fn test_reference_frame_iau_carme() { - assert_eq!(PyFrame::Carme.name(), "IAU Body-Fixed Frame for Carme"); - assert_eq!(PyFrame::Carme.abbreviation(), "IAU_CARME"); - } - #[test] - fn test_reference_frame_iau_ananke() { - assert_eq!(PyFrame::Ananke.name(), "IAU Body-Fixed Frame for Ananke"); - assert_eq!(PyFrame::Ananke.abbreviation(), "IAU_ANANKE"); - } - #[test] - fn test_reference_frame_iau_leda() { - assert_eq!(PyFrame::Leda.name(), "IAU Body-Fixed Frame for Leda"); - assert_eq!(PyFrame::Leda.abbreviation(), "IAU_LEDA"); - } - #[test] - fn test_reference_frame_iau_thebe() { - assert_eq!(PyFrame::Thebe.name(), "IAU Body-Fixed Frame for Thebe"); - assert_eq!(PyFrame::Thebe.abbreviation(), "IAU_THEBE"); - } - #[test] - fn test_reference_frame_iau_adrastea() { - assert_eq!( - PyFrame::Adrastea.name(), - "IAU Body-Fixed Frame for Adrastea" - ); - assert_eq!(PyFrame::Adrastea.abbreviation(), "IAU_ADRASTEA"); - } - #[test] - fn test_reference_frame_iau_metis() { - assert_eq!(PyFrame::Metis.name(), "IAU Body-Fixed Frame for Metis"); - assert_eq!(PyFrame::Metis.abbreviation(), "IAU_METIS"); - } - #[test] - fn test_reference_frame_iau_callirrhoe() { - assert_eq!( - PyFrame::Callirrhoe.name(), - "IAU Body-Fixed Frame for Callirrhoe" - ); - assert_eq!(PyFrame::Callirrhoe.abbreviation(), "IAU_CALLIRRHOE"); - } - #[test] - fn test_reference_frame_iau_themisto() { - assert_eq!( - PyFrame::Themisto.name(), - "IAU Body-Fixed Frame for Themisto" - ); - assert_eq!(PyFrame::Themisto.abbreviation(), "IAU_THEMISTO"); - } - #[test] - fn test_reference_frame_iau_magaclite() { - assert_eq!( - PyFrame::Magaclite.name(), - "IAU Body-Fixed Frame for Magaclite" - ); - assert_eq!(PyFrame::Magaclite.abbreviation(), "IAU_MAGACLITE"); - } - #[test] - fn test_reference_frame_iau_taygete() { - assert_eq!(PyFrame::Taygete.name(), "IAU Body-Fixed Frame for Taygete"); - assert_eq!(PyFrame::Taygete.abbreviation(), "IAU_TAYGETE"); - } - #[test] - fn test_reference_frame_iau_chaldene() { - assert_eq!( - PyFrame::Chaldene.name(), - "IAU Body-Fixed Frame for Chaldene" - ); - assert_eq!(PyFrame::Chaldene.abbreviation(), "IAU_CHALDENE"); - } - #[test] - fn test_reference_frame_iau_harpalyke() { - assert_eq!( - PyFrame::Harpalyke.name(), - "IAU Body-Fixed Frame for Harpalyke" - ); - assert_eq!(PyFrame::Harpalyke.abbreviation(), "IAU_HARPALYKE"); - } - #[test] - fn test_reference_frame_iau_kalyke() { - assert_eq!(PyFrame::Kalyke.name(), "IAU Body-Fixed Frame for Kalyke"); - assert_eq!(PyFrame::Kalyke.abbreviation(), "IAU_KALYKE"); - } - #[test] - fn test_reference_frame_iau_iocaste() { - assert_eq!(PyFrame::Iocaste.name(), "IAU Body-Fixed Frame for Iocaste"); - assert_eq!(PyFrame::Iocaste.abbreviation(), "IAU_IOCASTE"); - } - #[test] - fn test_reference_frame_iau_erinome() { - assert_eq!(PyFrame::Erinome.name(), "IAU Body-Fixed Frame for Erinome"); - assert_eq!(PyFrame::Erinome.abbreviation(), "IAU_ERINOME"); - } - #[test] - fn test_reference_frame_iau_isonoe() { - assert_eq!(PyFrame::Isonoe.name(), "IAU Body-Fixed Frame for Isonoe"); - assert_eq!(PyFrame::Isonoe.abbreviation(), "IAU_ISONOE"); - } - #[test] - fn test_reference_frame_iau_praxidike() { - assert_eq!( - PyFrame::Praxidike.name(), - "IAU Body-Fixed Frame for Praxidike" - ); - assert_eq!(PyFrame::Praxidike.abbreviation(), "IAU_PRAXIDIKE"); - } - #[test] - fn test_reference_frame_iau_autonoe() { - assert_eq!(PyFrame::Autonoe.name(), "IAU Body-Fixed Frame for Autonoe"); - assert_eq!(PyFrame::Autonoe.abbreviation(), "IAU_AUTONOE"); - } - #[test] - fn test_reference_frame_iau_thyone() { - assert_eq!(PyFrame::Thyone.name(), "IAU Body-Fixed Frame for Thyone"); - assert_eq!(PyFrame::Thyone.abbreviation(), "IAU_THYONE"); - } - #[test] - fn test_reference_frame_iau_hermippe() { - assert_eq!( - PyFrame::Hermippe.name(), - "IAU Body-Fixed Frame for Hermippe" - ); - assert_eq!(PyFrame::Hermippe.abbreviation(), "IAU_HERMIPPE"); - } - #[test] - fn test_reference_frame_iau_aitne() { - assert_eq!(PyFrame::Aitne.name(), "IAU Body-Fixed Frame for Aitne"); - assert_eq!(PyFrame::Aitne.abbreviation(), "IAU_AITNE"); - } - #[test] - fn test_reference_frame_iau_eurydome() { - assert_eq!( - PyFrame::Eurydome.name(), - "IAU Body-Fixed Frame for Eurydome" - ); - assert_eq!(PyFrame::Eurydome.abbreviation(), "IAU_EURYDOME"); - } - #[test] - fn test_reference_frame_iau_euanthe() { - assert_eq!(PyFrame::Euanthe.name(), "IAU Body-Fixed Frame for Euanthe"); - assert_eq!(PyFrame::Euanthe.abbreviation(), "IAU_EUANTHE"); - } - #[test] - fn test_reference_frame_iau_euporie() { - assert_eq!(PyFrame::Euporie.name(), "IAU Body-Fixed Frame for Euporie"); - assert_eq!(PyFrame::Euporie.abbreviation(), "IAU_EUPORIE"); - } - #[test] - fn test_reference_frame_iau_orthosie() { - assert_eq!( - PyFrame::Orthosie.name(), - "IAU Body-Fixed Frame for Orthosie" - ); - assert_eq!(PyFrame::Orthosie.abbreviation(), "IAU_ORTHOSIE"); - } - #[test] - fn test_reference_frame_iau_sponde() { - assert_eq!(PyFrame::Sponde.name(), "IAU Body-Fixed Frame for Sponde"); - assert_eq!(PyFrame::Sponde.abbreviation(), "IAU_SPONDE"); - } - #[test] - fn test_reference_frame_iau_kale() { - assert_eq!(PyFrame::Kale.name(), "IAU Body-Fixed Frame for Kale"); - assert_eq!(PyFrame::Kale.abbreviation(), "IAU_KALE"); - } - #[test] - fn test_reference_frame_iau_pasithee() { - assert_eq!( - PyFrame::Pasithee.name(), - "IAU Body-Fixed Frame for Pasithee" - ); - assert_eq!(PyFrame::Pasithee.abbreviation(), "IAU_PASITHEE"); - } - #[test] - fn test_reference_frame_iau_hegemone() { - assert_eq!( - PyFrame::Hegemone.name(), - "IAU Body-Fixed Frame for Hegemone" - ); - assert_eq!(PyFrame::Hegemone.abbreviation(), "IAU_HEGEMONE"); - } - #[test] - fn test_reference_frame_iau_mneme() { - assert_eq!(PyFrame::Mneme.name(), "IAU Body-Fixed Frame for Mneme"); - assert_eq!(PyFrame::Mneme.abbreviation(), "IAU_MNEME"); - } - #[test] - fn test_reference_frame_iau_aoede() { - assert_eq!(PyFrame::Aoede.name(), "IAU Body-Fixed Frame for Aoede"); - assert_eq!(PyFrame::Aoede.abbreviation(), "IAU_AOEDE"); - } - #[test] - fn test_reference_frame_iau_thelxinoe() { - assert_eq!( - PyFrame::Thelxinoe.name(), - "IAU Body-Fixed Frame for Thelxinoe" - ); - assert_eq!(PyFrame::Thelxinoe.abbreviation(), "IAU_THELXINOE"); - } - #[test] - fn test_reference_frame_iau_arche() { - assert_eq!(PyFrame::Arche.name(), "IAU Body-Fixed Frame for Arche"); - assert_eq!(PyFrame::Arche.abbreviation(), "IAU_ARCHE"); - } - #[test] - fn test_reference_frame_iau_kallichore() { - assert_eq!( - PyFrame::Kallichore.name(), - "IAU Body-Fixed Frame for Kallichore" - ); - assert_eq!(PyFrame::Kallichore.abbreviation(), "IAU_KALLICHORE"); - } - #[test] - fn test_reference_frame_iau_helike() { - assert_eq!(PyFrame::Helike.name(), "IAU Body-Fixed Frame for Helike"); - assert_eq!(PyFrame::Helike.abbreviation(), "IAU_HELIKE"); - } - #[test] - fn test_reference_frame_iau_carpo() { - assert_eq!(PyFrame::Carpo.name(), "IAU Body-Fixed Frame for Carpo"); - assert_eq!(PyFrame::Carpo.abbreviation(), "IAU_CARPO"); - } - #[test] - fn test_reference_frame_iau_eukelade() { - assert_eq!( - PyFrame::Eukelade.name(), - "IAU Body-Fixed Frame for Eukelade" - ); - assert_eq!(PyFrame::Eukelade.abbreviation(), "IAU_EUKELADE"); - } - #[test] - fn test_reference_frame_iau_cyllene() { - assert_eq!(PyFrame::Cyllene.name(), "IAU Body-Fixed Frame for Cyllene"); - assert_eq!(PyFrame::Cyllene.abbreviation(), "IAU_CYLLENE"); - } - #[test] - fn test_reference_frame_iau_kore() { - assert_eq!(PyFrame::Kore.name(), "IAU Body-Fixed Frame for Kore"); - assert_eq!(PyFrame::Kore.abbreviation(), "IAU_KORE"); - } - #[test] - fn test_reference_frame_iau_herse() { - assert_eq!(PyFrame::Herse.name(), "IAU Body-Fixed Frame for Herse"); - assert_eq!(PyFrame::Herse.abbreviation(), "IAU_HERSE"); - } - #[test] - fn test_reference_frame_iau_dia() { - assert_eq!(PyFrame::Dia.name(), "IAU Body-Fixed Frame for Dia"); - assert_eq!(PyFrame::Dia.abbreviation(), "IAU_DIA"); - } - #[test] - fn test_reference_frame_iau_mimas() { - assert_eq!(PyFrame::Mimas.name(), "IAU Body-Fixed Frame for Mimas"); - assert_eq!(PyFrame::Mimas.abbreviation(), "IAU_MIMAS"); - } - #[test] - fn test_reference_frame_iau_enceladus() { - assert_eq!( - PyFrame::Enceladus.name(), - "IAU Body-Fixed Frame for Enceladus" - ); - assert_eq!(PyFrame::Enceladus.abbreviation(), "IAU_ENCELADUS"); - } - #[test] - fn test_reference_frame_iau_tethys() { - assert_eq!(PyFrame::Tethys.name(), "IAU Body-Fixed Frame for Tethys"); - assert_eq!(PyFrame::Tethys.abbreviation(), "IAU_TETHYS"); - } - #[test] - fn test_reference_frame_iau_dione() { - assert_eq!(PyFrame::Dione.name(), "IAU Body-Fixed Frame for Dione"); - assert_eq!(PyFrame::Dione.abbreviation(), "IAU_DIONE"); - } - #[test] - fn test_reference_frame_iau_rhea() { - assert_eq!(PyFrame::Rhea.name(), "IAU Body-Fixed Frame for Rhea"); - assert_eq!(PyFrame::Rhea.abbreviation(), "IAU_RHEA"); - } - #[test] - fn test_reference_frame_iau_titan() { - assert_eq!(PyFrame::Titan.name(), "IAU Body-Fixed Frame for Titan"); - assert_eq!(PyFrame::Titan.abbreviation(), "IAU_TITAN"); - } - #[test] - fn test_reference_frame_iau_hyperion() { - assert_eq!( - PyFrame::Hyperion.name(), - "IAU Body-Fixed Frame for Hyperion" - ); - assert_eq!(PyFrame::Hyperion.abbreviation(), "IAU_HYPERION"); - } - #[test] - fn test_reference_frame_iau_iapetus() { - assert_eq!(PyFrame::Iapetus.name(), "IAU Body-Fixed Frame for Iapetus"); - assert_eq!(PyFrame::Iapetus.abbreviation(), "IAU_IAPETUS"); - } - #[test] - fn test_reference_frame_iau_phoebe() { - assert_eq!(PyFrame::Phoebe.name(), "IAU Body-Fixed Frame for Phoebe"); - assert_eq!(PyFrame::Phoebe.abbreviation(), "IAU_PHOEBE"); - } - #[test] - fn test_reference_frame_iau_janus() { - assert_eq!(PyFrame::Janus.name(), "IAU Body-Fixed Frame for Janus"); - assert_eq!(PyFrame::Janus.abbreviation(), "IAU_JANUS"); - } - #[test] - fn test_reference_frame_iau_epimetheus() { - assert_eq!( - PyFrame::Epimetheus.name(), - "IAU Body-Fixed Frame for Epimetheus" - ); - assert_eq!(PyFrame::Epimetheus.abbreviation(), "IAU_EPIMETHEUS"); - } - #[test] - fn test_reference_frame_iau_helene() { - assert_eq!(PyFrame::Helene.name(), "IAU Body-Fixed Frame for Helene"); - assert_eq!(PyFrame::Helene.abbreviation(), "IAU_HELENE"); - } - #[test] - fn test_reference_frame_iau_telesto() { - assert_eq!(PyFrame::Telesto.name(), "IAU Body-Fixed Frame for Telesto"); - assert_eq!(PyFrame::Telesto.abbreviation(), "IAU_TELESTO"); - } - #[test] - fn test_reference_frame_iau_calypso() { - assert_eq!(PyFrame::Calypso.name(), "IAU Body-Fixed Frame for Calypso"); - assert_eq!(PyFrame::Calypso.abbreviation(), "IAU_CALYPSO"); - } - #[test] - fn test_reference_frame_iau_atlas() { - assert_eq!(PyFrame::Atlas.name(), "IAU Body-Fixed Frame for Atlas"); - assert_eq!(PyFrame::Atlas.abbreviation(), "IAU_ATLAS"); - } - #[test] - fn test_reference_frame_iau_prometheus() { - assert_eq!( - PyFrame::Prometheus.name(), - "IAU Body-Fixed Frame for Prometheus" - ); - assert_eq!(PyFrame::Prometheus.abbreviation(), "IAU_PROMETHEUS"); - } - #[test] - fn test_reference_frame_iau_pandora() { - assert_eq!(PyFrame::Pandora.name(), "IAU Body-Fixed Frame for Pandora"); - assert_eq!(PyFrame::Pandora.abbreviation(), "IAU_PANDORA"); - } - #[test] - fn test_reference_frame_iau_pan() { - assert_eq!(PyFrame::Pan.name(), "IAU Body-Fixed Frame for Pan"); - assert_eq!(PyFrame::Pan.abbreviation(), "IAU_PAN"); - } - #[test] - fn test_reference_frame_iau_ymir() { - assert_eq!(PyFrame::Ymir.name(), "IAU Body-Fixed Frame for Ymir"); - assert_eq!(PyFrame::Ymir.abbreviation(), "IAU_YMIR"); - } - #[test] - fn test_reference_frame_iau_paaliaq() { - assert_eq!(PyFrame::Paaliaq.name(), "IAU Body-Fixed Frame for Paaliaq"); - assert_eq!(PyFrame::Paaliaq.abbreviation(), "IAU_PAALIAQ"); - } - #[test] - fn test_reference_frame_iau_tarvos() { - assert_eq!(PyFrame::Tarvos.name(), "IAU Body-Fixed Frame for Tarvos"); - assert_eq!(PyFrame::Tarvos.abbreviation(), "IAU_TARVOS"); - } - #[test] - fn test_reference_frame_iau_ijiraq() { - assert_eq!(PyFrame::Ijiraq.name(), "IAU Body-Fixed Frame for Ijiraq"); - assert_eq!(PyFrame::Ijiraq.abbreviation(), "IAU_IJIRAQ"); - } - #[test] - fn test_reference_frame_iau_suttungr() { - assert_eq!( - PyFrame::Suttungr.name(), - "IAU Body-Fixed Frame for Suttungr" - ); - assert_eq!(PyFrame::Suttungr.abbreviation(), "IAU_SUTTUNGR"); - } - #[test] - fn test_reference_frame_iau_kiviuq() { - assert_eq!(PyFrame::Kiviuq.name(), "IAU Body-Fixed Frame for Kiviuq"); - assert_eq!(PyFrame::Kiviuq.abbreviation(), "IAU_KIVIUQ"); - } - #[test] - fn test_reference_frame_iau_mundilfari() { - assert_eq!( - PyFrame::Mundilfari.name(), - "IAU Body-Fixed Frame for Mundilfari" - ); - assert_eq!(PyFrame::Mundilfari.abbreviation(), "IAU_MUNDILFARI"); - } - #[test] - fn test_reference_frame_iau_albiorix() { - assert_eq!( - PyFrame::Albiorix.name(), - "IAU Body-Fixed Frame for Albiorix" - ); - assert_eq!(PyFrame::Albiorix.abbreviation(), "IAU_ALBIORIX"); - } - #[test] - fn test_reference_frame_iau_skathi() { - assert_eq!(PyFrame::Skathi.name(), "IAU Body-Fixed Frame for Skathi"); - assert_eq!(PyFrame::Skathi.abbreviation(), "IAU_SKATHI"); - } - #[test] - fn test_reference_frame_iau_erriapus() { - assert_eq!( - PyFrame::Erriapus.name(), - "IAU Body-Fixed Frame for Erriapus" - ); - assert_eq!(PyFrame::Erriapus.abbreviation(), "IAU_ERRIAPUS"); - } - #[test] - fn test_reference_frame_iau_siarnaq() { - assert_eq!(PyFrame::Siarnaq.name(), "IAU Body-Fixed Frame for Siarnaq"); - assert_eq!(PyFrame::Siarnaq.abbreviation(), "IAU_SIARNAQ"); - } - #[test] - fn test_reference_frame_iau_thrymr() { - assert_eq!(PyFrame::Thrymr.name(), "IAU Body-Fixed Frame for Thrymr"); - assert_eq!(PyFrame::Thrymr.abbreviation(), "IAU_THRYMR"); - } - #[test] - fn test_reference_frame_iau_narvi() { - assert_eq!(PyFrame::Narvi.name(), "IAU Body-Fixed Frame for Narvi"); - assert_eq!(PyFrame::Narvi.abbreviation(), "IAU_NARVI"); - } - #[test] - fn test_reference_frame_iau_methone() { - assert_eq!(PyFrame::Methone.name(), "IAU Body-Fixed Frame for Methone"); - assert_eq!(PyFrame::Methone.abbreviation(), "IAU_METHONE"); - } - #[test] - fn test_reference_frame_iau_pallene() { - assert_eq!(PyFrame::Pallene.name(), "IAU Body-Fixed Frame for Pallene"); - assert_eq!(PyFrame::Pallene.abbreviation(), "IAU_PALLENE"); - } - #[test] - fn test_reference_frame_iau_polydeuces() { - assert_eq!( - PyFrame::Polydeuces.name(), - "IAU Body-Fixed Frame for Polydeuces" - ); - assert_eq!(PyFrame::Polydeuces.abbreviation(), "IAU_POLYDEUCES"); - } - #[test] - fn test_reference_frame_iau_daphnis() { - assert_eq!(PyFrame::Daphnis.name(), "IAU Body-Fixed Frame for Daphnis"); - assert_eq!(PyFrame::Daphnis.abbreviation(), "IAU_DAPHNIS"); - } - #[test] - fn test_reference_frame_iau_aegir() { - assert_eq!(PyFrame::Aegir.name(), "IAU Body-Fixed Frame for Aegir"); - assert_eq!(PyFrame::Aegir.abbreviation(), "IAU_AEGIR"); - } - #[test] - fn test_reference_frame_iau_bebhionn() { - assert_eq!( - PyFrame::Bebhionn.name(), - "IAU Body-Fixed Frame for Bebhionn" - ); - assert_eq!(PyFrame::Bebhionn.abbreviation(), "IAU_BEBHIONN"); - } - #[test] - fn test_reference_frame_iau_bergelmir() { - assert_eq!( - PyFrame::Bergelmir.name(), - "IAU Body-Fixed Frame for Bergelmir" - ); - assert_eq!(PyFrame::Bergelmir.abbreviation(), "IAU_BERGELMIR"); - } - #[test] - fn test_reference_frame_iau_bestla() { - assert_eq!(PyFrame::Bestla.name(), "IAU Body-Fixed Frame for Bestla"); - assert_eq!(PyFrame::Bestla.abbreviation(), "IAU_BESTLA"); - } - #[test] - fn test_reference_frame_iau_farbauti() { - assert_eq!( - PyFrame::Farbauti.name(), - "IAU Body-Fixed Frame for Farbauti" - ); - assert_eq!(PyFrame::Farbauti.abbreviation(), "IAU_FARBAUTI"); - } - #[test] - fn test_reference_frame_iau_fenrir() { - assert_eq!(PyFrame::Fenrir.name(), "IAU Body-Fixed Frame for Fenrir"); - assert_eq!(PyFrame::Fenrir.abbreviation(), "IAU_FENRIR"); - } - #[test] - fn test_reference_frame_iau_fornjot() { - assert_eq!(PyFrame::Fornjot.name(), "IAU Body-Fixed Frame for Fornjot"); - assert_eq!(PyFrame::Fornjot.abbreviation(), "IAU_FORNJOT"); - } - #[test] - fn test_reference_frame_iau_hati() { - assert_eq!(PyFrame::Hati.name(), "IAU Body-Fixed Frame for Hati"); - assert_eq!(PyFrame::Hati.abbreviation(), "IAU_HATI"); - } - #[test] - fn test_reference_frame_iau_hyrrokkin() { - assert_eq!( - PyFrame::Hyrrokkin.name(), - "IAU Body-Fixed Frame for Hyrrokkin" - ); - assert_eq!(PyFrame::Hyrrokkin.abbreviation(), "IAU_HYRROKKIN"); - } - #[test] - fn test_reference_frame_iau_kari() { - assert_eq!(PyFrame::Kari.name(), "IAU Body-Fixed Frame for Kari"); - assert_eq!(PyFrame::Kari.abbreviation(), "IAU_KARI"); - } - #[test] - fn test_reference_frame_iau_loge() { - assert_eq!(PyFrame::Loge.name(), "IAU Body-Fixed Frame for Loge"); - assert_eq!(PyFrame::Loge.abbreviation(), "IAU_LOGE"); - } - #[test] - fn test_reference_frame_iau_skoll() { - assert_eq!(PyFrame::Skoll.name(), "IAU Body-Fixed Frame for Skoll"); - assert_eq!(PyFrame::Skoll.abbreviation(), "IAU_SKOLL"); - } - #[test] - fn test_reference_frame_iau_surtur() { - assert_eq!(PyFrame::Surtur.name(), "IAU Body-Fixed Frame for Surtur"); - assert_eq!(PyFrame::Surtur.abbreviation(), "IAU_SURTUR"); - } - #[test] - fn test_reference_frame_iau_anthe() { - assert_eq!(PyFrame::Anthe.name(), "IAU Body-Fixed Frame for Anthe"); - assert_eq!(PyFrame::Anthe.abbreviation(), "IAU_ANTHE"); - } - #[test] - fn test_reference_frame_iau_jarnsaxa() { - assert_eq!( - PyFrame::Jarnsaxa.name(), - "IAU Body-Fixed Frame for Jarnsaxa" - ); - assert_eq!(PyFrame::Jarnsaxa.abbreviation(), "IAU_JARNSAXA"); - } - #[test] - fn test_reference_frame_iau_greip() { - assert_eq!(PyFrame::Greip.name(), "IAU Body-Fixed Frame for Greip"); - assert_eq!(PyFrame::Greip.abbreviation(), "IAU_GREIP"); - } - #[test] - fn test_reference_frame_iau_tarqeq() { - assert_eq!(PyFrame::Tarqeq.name(), "IAU Body-Fixed Frame for Tarqeq"); - assert_eq!(PyFrame::Tarqeq.abbreviation(), "IAU_TARQEQ"); - } - #[test] - fn test_reference_frame_iau_aegaeon() { - assert_eq!(PyFrame::Aegaeon.name(), "IAU Body-Fixed Frame for Aegaeon"); - assert_eq!(PyFrame::Aegaeon.abbreviation(), "IAU_AEGAEON"); - } - #[test] - fn test_reference_frame_iau_ariel() { - assert_eq!(PyFrame::Ariel.name(), "IAU Body-Fixed Frame for Ariel"); - assert_eq!(PyFrame::Ariel.abbreviation(), "IAU_ARIEL"); - } - #[test] - fn test_reference_frame_iau_umbriel() { - assert_eq!(PyFrame::Umbriel.name(), "IAU Body-Fixed Frame for Umbriel"); - assert_eq!(PyFrame::Umbriel.abbreviation(), "IAU_UMBRIEL"); - } - #[test] - fn test_reference_frame_iau_titania() { - assert_eq!(PyFrame::Titania.name(), "IAU Body-Fixed Frame for Titania"); - assert_eq!(PyFrame::Titania.abbreviation(), "IAU_TITANIA"); - } - #[test] - fn test_reference_frame_iau_oberon() { - assert_eq!(PyFrame::Oberon.name(), "IAU Body-Fixed Frame for Oberon"); - assert_eq!(PyFrame::Oberon.abbreviation(), "IAU_OBERON"); - } - #[test] - fn test_reference_frame_iau_miranda() { - assert_eq!(PyFrame::Miranda.name(), "IAU Body-Fixed Frame for Miranda"); - assert_eq!(PyFrame::Miranda.abbreviation(), "IAU_MIRANDA"); - } - #[test] - fn test_reference_frame_iau_cordelia() { - assert_eq!( - PyFrame::Cordelia.name(), - "IAU Body-Fixed Frame for Cordelia" - ); - assert_eq!(PyFrame::Cordelia.abbreviation(), "IAU_CORDELIA"); - } - #[test] - fn test_reference_frame_iau_ophelia() { - assert_eq!(PyFrame::Ophelia.name(), "IAU Body-Fixed Frame for Ophelia"); - assert_eq!(PyFrame::Ophelia.abbreviation(), "IAU_OPHELIA"); - } - #[test] - fn test_reference_frame_iau_bianca() { - assert_eq!(PyFrame::Bianca.name(), "IAU Body-Fixed Frame for Bianca"); - assert_eq!(PyFrame::Bianca.abbreviation(), "IAU_BIANCA"); - } - #[test] - fn test_reference_frame_iau_cressida() { - assert_eq!( - PyFrame::Cressida.name(), - "IAU Body-Fixed Frame for Cressida" - ); - assert_eq!(PyFrame::Cressida.abbreviation(), "IAU_CRESSIDA"); - } - #[test] - fn test_reference_frame_iau_desdemona() { - assert_eq!( - PyFrame::Desdemona.name(), - "IAU Body-Fixed Frame for Desdemona" - ); - assert_eq!(PyFrame::Desdemona.abbreviation(), "IAU_DESDEMONA"); - } - #[test] - fn test_reference_frame_iau_juliet() { - assert_eq!(PyFrame::Juliet.name(), "IAU Body-Fixed Frame for Juliet"); - assert_eq!(PyFrame::Juliet.abbreviation(), "IAU_JULIET"); - } - #[test] - fn test_reference_frame_iau_portia() { - assert_eq!(PyFrame::Portia.name(), "IAU Body-Fixed Frame for Portia"); - assert_eq!(PyFrame::Portia.abbreviation(), "IAU_PORTIA"); - } - #[test] - fn test_reference_frame_iau_rosalind() { - assert_eq!( - PyFrame::Rosalind.name(), - "IAU Body-Fixed Frame for Rosalind" - ); - assert_eq!(PyFrame::Rosalind.abbreviation(), "IAU_ROSALIND"); - } - #[test] - fn test_reference_frame_iau_belinda() { - assert_eq!(PyFrame::Belinda.name(), "IAU Body-Fixed Frame for Belinda"); - assert_eq!(PyFrame::Belinda.abbreviation(), "IAU_BELINDA"); - } - #[test] - fn test_reference_frame_iau_puck() { - assert_eq!(PyFrame::Puck.name(), "IAU Body-Fixed Frame for Puck"); - assert_eq!(PyFrame::Puck.abbreviation(), "IAU_PUCK"); - } - #[test] - fn test_reference_frame_iau_caliban() { - assert_eq!(PyFrame::Caliban.name(), "IAU Body-Fixed Frame for Caliban"); - assert_eq!(PyFrame::Caliban.abbreviation(), "IAU_CALIBAN"); - } - #[test] - fn test_reference_frame_iau_sycorax() { - assert_eq!(PyFrame::Sycorax.name(), "IAU Body-Fixed Frame for Sycorax"); - assert_eq!(PyFrame::Sycorax.abbreviation(), "IAU_SYCORAX"); - } - #[test] - fn test_reference_frame_iau_prospero() { - assert_eq!( - PyFrame::Prospero.name(), - "IAU Body-Fixed Frame for Prospero" - ); - assert_eq!(PyFrame::Prospero.abbreviation(), "IAU_PROSPERO"); - } - #[test] - fn test_reference_frame_iau_setebos() { - assert_eq!(PyFrame::Setebos.name(), "IAU Body-Fixed Frame for Setebos"); - assert_eq!(PyFrame::Setebos.abbreviation(), "IAU_SETEBOS"); - } - #[test] - fn test_reference_frame_iau_stephano() { - assert_eq!( - PyFrame::Stephano.name(), - "IAU Body-Fixed Frame for Stephano" - ); - assert_eq!(PyFrame::Stephano.abbreviation(), "IAU_STEPHANO"); - } - #[test] - fn test_reference_frame_iau_trinculo() { - assert_eq!( - PyFrame::Trinculo.name(), - "IAU Body-Fixed Frame for Trinculo" - ); - assert_eq!(PyFrame::Trinculo.abbreviation(), "IAU_TRINCULO"); - } - #[test] - fn test_reference_frame_iau_francisco() { - assert_eq!( - PyFrame::Francisco.name(), - "IAU Body-Fixed Frame for Francisco" - ); - assert_eq!(PyFrame::Francisco.abbreviation(), "IAU_FRANCISCO"); - } - #[test] - fn test_reference_frame_iau_margaret() { - assert_eq!( - PyFrame::Margaret.name(), - "IAU Body-Fixed Frame for Margaret" - ); - assert_eq!(PyFrame::Margaret.abbreviation(), "IAU_MARGARET"); - } - #[test] - fn test_reference_frame_iau_ferdinand() { - assert_eq!( - PyFrame::Ferdinand.name(), - "IAU Body-Fixed Frame for Ferdinand" - ); - assert_eq!(PyFrame::Ferdinand.abbreviation(), "IAU_FERDINAND"); - } - #[test] - fn test_reference_frame_iau_perdita() { - assert_eq!(PyFrame::Perdita.name(), "IAU Body-Fixed Frame for Perdita"); - assert_eq!(PyFrame::Perdita.abbreviation(), "IAU_PERDITA"); - } - #[test] - fn test_reference_frame_iau_mab() { - assert_eq!(PyFrame::Mab.name(), "IAU Body-Fixed Frame for Mab"); - assert_eq!(PyFrame::Mab.abbreviation(), "IAU_MAB"); - } - #[test] - fn test_reference_frame_iau_cupid() { - assert_eq!(PyFrame::Cupid.name(), "IAU Body-Fixed Frame for Cupid"); - assert_eq!(PyFrame::Cupid.abbreviation(), "IAU_CUPID"); - } - #[test] - fn test_reference_frame_iau_triton() { - assert_eq!(PyFrame::Triton.name(), "IAU Body-Fixed Frame for Triton"); - assert_eq!(PyFrame::Triton.abbreviation(), "IAU_TRITON"); - } - #[test] - fn test_reference_frame_iau_nereid() { - assert_eq!(PyFrame::Nereid.name(), "IAU Body-Fixed Frame for Nereid"); - assert_eq!(PyFrame::Nereid.abbreviation(), "IAU_NEREID"); - } - #[test] - fn test_reference_frame_iau_naiad() { - assert_eq!(PyFrame::Naiad.name(), "IAU Body-Fixed Frame for Naiad"); - assert_eq!(PyFrame::Naiad.abbreviation(), "IAU_NAIAD"); - } - #[test] - fn test_reference_frame_iau_thalassa() { - assert_eq!( - PyFrame::Thalassa.name(), - "IAU Body-Fixed Frame for Thalassa" - ); - assert_eq!(PyFrame::Thalassa.abbreviation(), "IAU_THALASSA"); - } - #[test] - fn test_reference_frame_iau_despina() { - assert_eq!(PyFrame::Despina.name(), "IAU Body-Fixed Frame for Despina"); - assert_eq!(PyFrame::Despina.abbreviation(), "IAU_DESPINA"); - } - #[test] - fn test_reference_frame_iau_galatea() { - assert_eq!(PyFrame::Galatea.name(), "IAU Body-Fixed Frame for Galatea"); - assert_eq!(PyFrame::Galatea.abbreviation(), "IAU_GALATEA"); - } - #[test] - fn test_reference_frame_iau_larissa() { - assert_eq!(PyFrame::Larissa.name(), "IAU Body-Fixed Frame for Larissa"); - assert_eq!(PyFrame::Larissa.abbreviation(), "IAU_LARISSA"); - } - #[test] - fn test_reference_frame_iau_proteus() { - assert_eq!(PyFrame::Proteus.name(), "IAU Body-Fixed Frame for Proteus"); - assert_eq!(PyFrame::Proteus.abbreviation(), "IAU_PROTEUS"); - } - #[test] - fn test_reference_frame_iau_halimede() { - assert_eq!( - PyFrame::Halimede.name(), - "IAU Body-Fixed Frame for Halimede" - ); - assert_eq!(PyFrame::Halimede.abbreviation(), "IAU_HALIMEDE"); - } - #[test] - fn test_reference_frame_iau_psamathe() { - assert_eq!( - PyFrame::Psamathe.name(), - "IAU Body-Fixed Frame for Psamathe" - ); - assert_eq!(PyFrame::Psamathe.abbreviation(), "IAU_PSAMATHE"); - } - #[test] - fn test_reference_frame_iau_sao() { - assert_eq!(PyFrame::Sao.name(), "IAU Body-Fixed Frame for Sao"); - assert_eq!(PyFrame::Sao.abbreviation(), "IAU_SAO"); - } - #[test] - fn test_reference_frame_iau_laomedeia() { - assert_eq!( - PyFrame::Laomedeia.name(), - "IAU Body-Fixed Frame for Laomedeia" - ); - assert_eq!(PyFrame::Laomedeia.abbreviation(), "IAU_LAOMEDEIA"); - } - #[test] - fn test_reference_frame_iau_neso() { - assert_eq!(PyFrame::Neso.name(), "IAU Body-Fixed Frame for Neso"); - assert_eq!(PyFrame::Neso.abbreviation(), "IAU_NESO"); - } - #[test] - fn test_reference_frame_iau_charon() { - assert_eq!(PyFrame::Charon.name(), "IAU Body-Fixed Frame for Charon"); - assert_eq!(PyFrame::Charon.abbreviation(), "IAU_CHARON"); - } - #[test] - fn test_reference_frame_iau_nix() { - assert_eq!(PyFrame::Nix.name(), "IAU Body-Fixed Frame for Nix"); - assert_eq!(PyFrame::Nix.abbreviation(), "IAU_NIX"); - } - #[test] - fn test_reference_frame_iau_hydra() { - assert_eq!(PyFrame::Hydra.name(), "IAU Body-Fixed Frame for Hydra"); - assert_eq!(PyFrame::Hydra.abbreviation(), "IAU_HYDRA"); - } - #[test] - fn test_reference_frame_iau_kerberos() { - assert_eq!( - PyFrame::Kerberos.name(), - "IAU Body-Fixed Frame for Kerberos" - ); - assert_eq!(PyFrame::Kerberos.abbreviation(), "IAU_KERBEROS"); - } - #[test] - fn test_reference_frame_iau_styx() { - assert_eq!(PyFrame::Styx.name(), "IAU Body-Fixed Frame for Styx"); - assert_eq!(PyFrame::Styx.abbreviation(), "IAU_STYX"); - } - #[test] - fn test_reference_frame_iau_gaspra() { - assert_eq!(PyFrame::Gaspra.name(), "IAU Body-Fixed Frame for Gaspra"); - assert_eq!(PyFrame::Gaspra.abbreviation(), "IAU_GASPRA"); - } - #[test] - fn test_reference_frame_iau_ida() { - assert_eq!(PyFrame::Ida.name(), "IAU Body-Fixed Frame for Ida"); - assert_eq!(PyFrame::Ida.abbreviation(), "IAU_IDA"); - } - #[test] - fn test_reference_frame_iau_dactyl() { - assert_eq!(PyFrame::Dactyl.name(), "IAU Body-Fixed Frame for Dactyl"); - assert_eq!(PyFrame::Dactyl.abbreviation(), "IAU_DACTYL"); - } - #[test] - fn test_reference_frame_iau_ceres() { - assert_eq!(PyFrame::Ceres.name(), "IAU Body-Fixed Frame for Ceres"); - assert_eq!(PyFrame::Ceres.abbreviation(), "IAU_CERES"); - } - #[test] - fn test_reference_frame_iau_pallas() { - assert_eq!(PyFrame::Pallas.name(), "IAU Body-Fixed Frame for Pallas"); - assert_eq!(PyFrame::Pallas.abbreviation(), "IAU_PALLAS"); - } - #[test] - fn test_reference_frame_iau_vesta() { - assert_eq!(PyFrame::Vesta.name(), "IAU Body-Fixed Frame for Vesta"); - assert_eq!(PyFrame::Vesta.abbreviation(), "IAU_VESTA"); - } - #[test] - fn test_reference_frame_iau_psyche() { - assert_eq!(PyFrame::Psyche.name(), "IAU Body-Fixed Frame for Psyche"); - assert_eq!(PyFrame::Psyche.abbreviation(), "IAU_PSYCHE"); - } - #[test] - fn test_reference_frame_iau_lutetia() { - assert_eq!(PyFrame::Lutetia.name(), "IAU Body-Fixed Frame for Lutetia"); - assert_eq!(PyFrame::Lutetia.abbreviation(), "IAU_LUTETIA"); - } - #[test] - fn test_reference_frame_iau_kleopatra() { - assert_eq!( - PyFrame::Kleopatra.name(), - "IAU Body-Fixed Frame for Kleopatra" - ); - assert_eq!(PyFrame::Kleopatra.abbreviation(), "IAU_KLEOPATRA"); - } - #[test] - fn test_reference_frame_iau_eros() { - assert_eq!(PyFrame::Eros.name(), "IAU Body-Fixed Frame for Eros"); - assert_eq!(PyFrame::Eros.abbreviation(), "IAU_EROS"); - } - #[test] - fn test_reference_frame_iau_davida() { - assert_eq!(PyFrame::Davida.name(), "IAU Body-Fixed Frame for Davida"); - assert_eq!(PyFrame::Davida.abbreviation(), "IAU_DAVIDA"); - } - #[test] - fn test_reference_frame_iau_mathilde() { - assert_eq!( - PyFrame::Mathilde.name(), - "IAU Body-Fixed Frame for Mathilde" - ); - assert_eq!(PyFrame::Mathilde.abbreviation(), "IAU_MATHILDE"); - } - #[test] - fn test_reference_frame_iau_steins() { - assert_eq!(PyFrame::Steins.name(), "IAU Body-Fixed Frame for Steins"); - assert_eq!(PyFrame::Steins.abbreviation(), "IAU_STEINS"); - } - #[test] - fn test_reference_frame_iau_braille() { - assert_eq!(PyFrame::Braille.name(), "IAU Body-Fixed Frame for Braille"); - assert_eq!(PyFrame::Braille.abbreviation(), "IAU_BRAILLE"); - } - #[test] - fn test_reference_frame_iau_wilson_harrington() { - assert_eq!( - PyFrame::WilsonHarrington.name(), - "IAU Body-Fixed Frame for Wilson-Harrington" - ); - assert_eq!( - PyFrame::WilsonHarrington.abbreviation(), - "IAU_WILSON_HARRINGTON" - ); - } - #[test] - fn test_reference_frame_iau_toutatis() { - assert_eq!( - PyFrame::Toutatis.name(), - "IAU Body-Fixed Frame for Toutatis" - ); - assert_eq!(PyFrame::Toutatis.abbreviation(), "IAU_TOUTATIS"); - } - #[test] - fn test_reference_frame_iau_itokawa() { - assert_eq!(PyFrame::Itokawa.name(), "IAU Body-Fixed Frame for Itokawa"); - assert_eq!(PyFrame::Itokawa.abbreviation(), "IAU_ITOKAWA"); - } - #[test] - fn test_reference_frame_iau_bennu() { - assert_eq!(PyFrame::Bennu.name(), "IAU Body-Fixed Frame for Bennu"); - assert_eq!(PyFrame::Bennu.abbreviation(), "IAU_BENNU"); - } -} diff --git a/crates/lox-orbits/src/states.rs b/crates/lox-orbits/src/states.rs index d568e9fe..4b49c096 100644 --- a/crates/lox-orbits/src/states.rs +++ b/crates/lox-orbits/src/states.rs @@ -20,13 +20,10 @@ use lox_time::{julian_dates::JulianDate, time_scales::Tdb, transformations::TryT use crate::anomalies::{eccentric_to_true, hyperbolic_to_true}; use crate::elements::{is_circular, is_equatorial, Keplerian, ToKeplerian}; -use crate::ground::GroundLocation; -use crate::{ - frames::{ - BodyFixed, CoordinateSystem, FrameTransformationProvider, Icrf, ReferenceFrame, TryToFrame, - }, - origins::{CoordinateOrigin, Origin}, +use crate::frames::{ + BodyFixed, CoordinateSystem, FrameTransformationProvider, Icrf, ReferenceFrame, TryToFrame, }; +use crate::ground::GroundLocation; pub trait ToCartesian { fn to_cartesian(&self) -> State; @@ -215,17 +212,6 @@ where } } -impl CoordinateOrigin for State -where - T: TimeLike, - O: Origin + Clone, - R: ReferenceFrame, -{ - fn origin(&self) -> O { - self.origin.clone() - } -} - impl State where T: TimeLike + Clone, diff --git a/crates/lox-orbits/src/trajectories.rs b/crates/lox-orbits/src/trajectories.rs index 973bed99..b893f3bd 100644 --- a/crates/lox-orbits/src/trajectories.rs +++ b/crates/lox-orbits/src/trajectories.rs @@ -19,7 +19,6 @@ use crate::events::{find_events, find_windows, Event, Window}; use crate::frames::{BodyFixed, FrameTransformationProvider, Icrf, TryToFrame}; use crate::{ frames::{CoordinateSystem, ReferenceFrame}, - origins::{CoordinateOrigin, Origin}, states::State, }; @@ -328,17 +327,6 @@ where } } -impl CoordinateOrigin for Trajectory -where - T: TimeLike, - O: Origin + Clone, - R: ReferenceFrame, -{ - fn origin(&self) -> O { - self.states[0].origin() - } -} - impl CoordinateSystem for Trajectory where T: TimeLike, diff --git a/crates/lox-time/src/lib.rs b/crates/lox-time/src/lib.rs index b0eb82bd..7b000d4c 100644 --- a/crates/lox-time/src/lib.rs +++ b/crates/lox-time/src/lib.rs @@ -77,9 +77,9 @@ pub mod utc; #[derive(Clone, Debug, Error)] #[error( - "Julian date must be between {} and {} seconds since J2000 but was {0}", - i64::MIN, - i64::MAX + "Julian date must be between {min} and {max} seconds since J2000 but was {0}", + min = i64::MIN, + max = i64::MAX )] pub struct JulianDateOutOfRange(f64);