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}