gnss_time/lib.rs
1//! # gnss-time
2//!
3//! **A type-safe GNSS time scale library with zero runtime overhead.**
4//!
5//! ## Quick start
6//!
7//! ```rust
8//! use gnss_time::{prelude::*, DurationParts};
9//!
10//! let gps = Time::<Gps>::from_week_tow(
11//! 2345,
12//! DurationParts {
13//! seconds: 432_000,
14//! nanos: 0,
15//! },
16//! )
17//! .unwrap();
18//! assert_eq!(gps.to_string(), "GPS 2345:432000.000");
19//!
20//! let utc: Time<Utc> = gps.into_scale_with(LeapSeconds::builtin()).unwrap();
21//! ```
22
23#![no_std]
24#![forbid(unsafe_code)]
25#![deny(missing_docs)]
26#![warn(clippy::must_use_candidate)]
27
28#[cfg(any(feature = "std", test))]
29extern crate std;
30
31// Core modules
32pub mod convert;
33pub mod duration;
34pub mod epoch;
35pub mod error;
36pub mod leap;
37pub mod matrix;
38pub mod scale;
39pub mod time;
40
41// Internal tables (not public API)
42mod tables;
43
44// Public re-exports
45pub use convert::*;
46pub use duration::*;
47pub use epoch::*;
48pub use error::*;
49pub use leap::*;
50pub use matrix::*;
51pub use scale::*;
52pub use time::*;
53
54// Prelude for convenient imports
55pub mod prelude;