1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
//! NMEA 0183 parser
//!
//! Use [`Nmea::parse()`] and [`Nmea::parse_for_fix()`]
//! to preserve state between receiving new NMEA sentence,
//! and [`parse_str()`] or [`parse_bytes()`] to parse sentences without state.
//!
//! Units used: **celsius**, **degrees**, **knots**, **meters** for altitude
//!
//! # Supported sentences:
//!
//! NMEA Standard Sentences
//!
//! - AAM
//! - ALM
//! - BOD
//! - BWC
//! - BWW
//! - DBK
//! - GBS
//! - GGA *
//! - GLL *
//! - GNS *
//! - GSA *
//! - GSV *
//! - HDT
//! - MDA
//! - MTW
//! - MWV
//! - RMC *
//! - VHW
//! - VTG *
//! - ZDA
//! - ZFO
//! - ZTG
//!
//! Other Sentences
//! - TXT *
//!
//! Vendor Extension
//! - PGRMZ
//!
//! **\* [`Nmea::parse()`] supported sentences**
//!
//!
//! # Crate features
//!
//! - `default` features - `std`
//! - `std` - enable `std`
//! - `serde` - enable `serde`
//!
//! [`Nmea::parse()`]: Nmea::parse
//! [`Nmea::parse_for_fix()`]: Nmea::parse_for_fix

// only enables the `doc_cfg` feature when
// the `docsrs` configuration attribute is defined
#![cfg_attr(docsrs, feature(doc_cfg))]
#![cfg_attr(not(any(feature = "std", test)), no_std)]
#![deny(unsafe_code, rustdoc::broken_intra_doc_links)]

mod error;
pub(crate) mod parse;
mod parser;

pub mod sentences;

#[doc(inline)]
pub use parser::*;

pub use error::Error;

#[doc(inline)]
pub use parse::*;

#[cfg(doctest)]
// Test the README examples
doc_comment::doctest!("../README.md");