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
use crate::fields::identity::*;
use crate::fields::parameter::*;
use crate::messages::*;

#[derive(Debug, PartialEq)]
pub struct Sentence<'a> {
    pub sentence_type: SentenceType,
    pub talker: Talker,
    pub message: Message<'a>,
}

#[derive(Debug, PartialEq)]
pub enum Message<'a> {
    DTM(DTMMessage<'a>),
    GBQ(GBQMessage<'a>),
    GBS(GBSMessage),
    GGA(GGAMessage),
    GLL(GLLMessage),
    GLQ(GLQMessage<'a>),
    GNQ(GNQMessage<'a>),
    GNS(GNSMessage),
    GPQ(GPQMessage<'a>),
    GRS(GRSMessage),
    GSA(GSAMessage),
    GST(GSTMessage),
    GSV(GSVMessage),
    RMC(RMCMessage),
    TXT(TXTMessage<'a>),
    VLW(VLWMessage),
    VTG(VTGMessage),
    ZDA(ZDAMessage),
}

#[derive(Debug, PartialEq)]
pub(crate) enum MessageType {
    DTM,
    GBQ,
    GBS,
    GGA,
    GLL,
    GLQ,
    GNQ,
    GNS,
    GPQ,
    GRS,
    GSA,
    GST,
    GSV,
    RMC,
    TXT,
    VLW,
    VTG,
    ZDA,
}