ukhasnet_parser/
lib.rs

1#![recursion_limit = "1000"]
2
3#[macro_use]
4extern crate pest;
5pub use pest::{Parser, StringInput};
6
7mod parser;
8mod packet;
9
10pub use parser::{Rdp, ParserError};
11pub use packet::{Location, WindSpeed, DataField, Packet};
12
13pub fn parse(packet: &String) -> Result<Packet, ParserError> {
14    let mut parser = Rdp::new(StringInput::new(packet));
15    match parser.packet() {
16        true => Ok(parser.parse()),
17        false => Err(ParserError::from_parser(&mut parser)),
18    }
19}