Skip to main content

nmea_kit/
lib.rs

1//! # nmea-kit
2//!
3//! Bidirectional NMEA 0183 parser/encoder with AIS message decoding.
4//!
5//! ## Architecture
6//!
7//! ```text
8//! raw line ──→ parse_frame() ──→ NmeaFrame { prefix, talker, sentence_type, fields }
9//!                                     │
10//!                      ┌──────────────┼──────────────┐
11//!                      ▼              ▼               ▼
12//!                $ + known      $ + unknown     ! (AIVDM/AIVDO)
13//!                      │              │               │
14//!                      ▼              ▼               ▼
15//!               Typed struct    Raw fields      AisMessage enum
16//! ```
17//!
18//! ## Features
19//!
20//! - `nmea` (default) — all 20 NMEA sentence types
21//! - `ais` (default) — AIS message decoding
22//! - `dbs`, `dbt`, `dpt`, … — individual sentence types
23
24mod error;
25mod frame;
26
27#[cfg(any(
28    feature = "nmea",
29    feature = "dbk",
30    feature = "dbs",
31    feature = "dbt",
32    feature = "dpt",
33    feature = "gbs",
34    feature = "gga",
35    feature = "gll",
36    feature = "gns",
37    feature = "gst",
38    feature = "hdg",
39    feature = "hdm",
40    feature = "hdt",
41    feature = "mwd",
42    feature = "mwv",
43    feature = "rmb",
44    feature = "rmc",
45    feature = "rot",
46    feature = "vhw",
47    feature = "vtg",
48    feature = "zda",
49))]
50pub mod nmea;
51
52#[cfg(feature = "ais")]
53pub mod ais;
54
55pub use error::*;
56pub use frame::*;
57
58#[cfg(any(
59    feature = "nmea",
60    feature = "dbk",
61    feature = "dbs",
62    feature = "dbt",
63    feature = "dpt",
64    feature = "gbs",
65    feature = "gga",
66    feature = "gll",
67    feature = "gns",
68    feature = "gst",
69    feature = "hdg",
70    feature = "hdm",
71    feature = "hdt",
72    feature = "mwd",
73    feature = "mwv",
74    feature = "rmb",
75    feature = "rmc",
76    feature = "rot",
77    feature = "vhw",
78    feature = "vtg",
79    feature = "zda",
80))]
81pub use nmea::NmeaSentence;