1mod civil;
36pub mod constats;
37mod context;
38mod data;
39mod delta_t;
40pub(crate) mod encoding;
41pub mod eop;
42pub mod error;
43pub(crate) mod generated;
44mod interval;
45pub mod representation;
46pub mod scalar;
47mod scale;
48mod sealed;
49mod target;
50mod time;
51
52#[cfg(feature = "serde")]
53#[path = "serde.rs"]
54mod serde_impl;
55#[cfg(feature = "serde")]
56pub mod tagged;
57
58pub use constats::{
59 GPS_EPOCH_JD_TAI, GPS_EPOCH_JD_UTC, GPS_EPOCH_TAI_MINUS_UTC, UTC_DEFINED_FROM_MJD,
60};
61pub use context::TimeContext;
62#[cfg(feature = "runtime-data-fetch")]
63pub use data::active::{
64 fetch_latest_time_data, refresh_runtime_time_data, update_runtime_time_data,
65};
66pub use delta_t::{delta_t_seconds, delta_t_seconds_extrapolated, DELTA_T_PREDICTION_HORIZON_MJD};
67pub use error::{ConversionError, TimeDataError};
68pub use generated::{
69 EOP_END_MJD, EOP_OBSERVED_END_MJD, EOP_START_MJD, MODERN_DELTA_T_OBSERVED_END_MJD,
70};
71pub use interval::{Interval, InvalidIntervalError, InvalidPeriodError, Period, PeriodListError};
72pub use representation::{
73 EncodedTime, GpsTime, InfallibleRepresentationForScale, J2000Seconds, J2000s, JulianDate,
74 ModifiedJulianDate, RepresentationForScale, TimeRepresentation, Unix, UnixTime, GPS, JD, MJD,
75};
76pub use scalar::{
77 scalar_add_days, scalar_difference_in_days, time_tt_from_scalar, time_tt_to_scalar, ScaleKind,
78};
79pub use scale::{ContinuousScale, CoordinateScale, Scale, TAI, TCB, TCG, TDB, TT, UT1, UTC};
80pub use target::{ContextConversionTarget, ConversionTarget, InfallibleConversionTarget};
81pub use time::Time;
82
83#[cfg(test)]
84mod size_tests {
85 use super::*;
86 #[test]
87 fn time_uses_compensated_pair_storage() {
88 assert_eq!(core::mem::size_of::<Time<TT>>(), 16);
89 assert_eq!(core::mem::size_of::<Time<TAI>>(), 16);
90 assert_eq!(core::mem::size_of::<Time<TDB>>(), 16);
91 assert_eq!(core::mem::size_of::<Time<TCG>>(), 16);
92 assert_eq!(core::mem::size_of::<Time<TCB>>(), 16);
93 assert_eq!(core::mem::size_of::<Time<UT1>>(), 16);
94 assert_eq!(core::mem::size_of::<Time<UTC>>(), 16);
95 }
96}