1mod earth_orientation;
3mod ephemeris;
4mod frame;
5mod header;
6mod ionosphere;
7mod message;
8mod parsing;
9mod time;
10
11pub mod rinex;
12
13pub(crate) mod formatting;
14
15pub(crate) use formatting::format;
16pub(crate) use parsing::{is_new_epoch, parse_epoch};
17
18pub use crate::navigation::{
19 earth_orientation::EarthOrientation,
20 ephemeris::{flags::*, orbits::OrbitItem, Ephemeris},
21 frame::{NavFrame, NavFrameType},
22 header::HeaderFields,
23 ionosphere::{BdModel, IonosphereModel, KbModel, KbRegionCode, NgModel, NgRegionFlags},
24 message::NavMessageType,
25 time::TimeOffset,
26};
27
28#[cfg(feature = "nav")]
29pub use crate::navigation::ephemeris::kepler::{Helper, Kepler, Perturbations};
30
31#[cfg(feature = "processing")]
32pub(crate) mod mask; #[cfg(feature = "processing")]
35pub(crate) mod decim; #[cfg(feature = "processing")]
38pub(crate) mod repair; #[cfg(feature = "serde")]
41use serde::{Deserialize, Serialize};
42
43use std::collections::BTreeMap;
44
45use crate::prelude::{Epoch, SV};
46
47#[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)]
48#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
49pub struct NavKey {
50 pub epoch: Epoch,
52
53 pub sv: SV,
55
56 pub msgtype: NavMessageType,
58
59 pub frmtype: NavFrameType,
61}
62
63pub type Record = BTreeMap<NavKey, NavFrame>;