23 |
23 |
24 named!(end_of_message, tag!("\n\n")); |
24 named!(end_of_message, tag!("\n\n")); |
25 named!(str_line<&[u8], &str>, map_res!(not_line_ending, str::from_utf8)); |
25 named!(str_line<&[u8], &str>, map_res!(not_line_ending, str::from_utf8)); |
26 named!( a_line<&[u8], String>, map!(str_line, String::from)); |
26 named!( a_line<&[u8], String>, map!(str_line, String::from)); |
27 named!( u8_line<&[u8], u8>, map_res!(str_line, FromStr::from_str)); |
27 named!( u8_line<&[u8], u8>, map_res!(str_line, FromStr::from_str)); |
|
28 named!(u16_line<&[u8], u16>, map_res!(str_line, FromStr::from_str)); |
28 named!(u32_line<&[u8], u32>, map_res!(str_line, FromStr::from_str)); |
29 named!(u32_line<&[u8], u32>, map_res!(str_line, FromStr::from_str)); |
29 named!(yes_no_line<&[u8], bool>, alt!( |
30 named!(yes_no_line<&[u8], bool>, alt!( |
30 do_parse!(tag_no_case!("YES") >> (true)) |
31 do_parse!(tag_no_case!("YES") >> (true)) |
31 | do_parse!(tag_no_case!("NO") >> (false)))); |
32 | do_parse!(tag_no_case!("NO") >> (false)))); |
32 named!(opt_param<&[u8], Option<String> >, alt!( |
33 named!(opt_param<&[u8], Option<String> >, alt!( |
85 | do_parse!(tag!("EM") >> eol >> m: a_line >> (EngineMessage(m))) |
86 | do_parse!(tag!("EM") >> eol >> m: a_line >> (EngineMessage(m))) |
86 | do_parse!(tag!("TEAMCHAT") >> eol >> m: a_line >> (TeamChat(m))) |
87 | do_parse!(tag!("TEAMCHAT") >> eol >> m: a_line >> (TeamChat(m))) |
87 | do_parse!(tag!("ROOM_NAME") >> eol >> n: a_line >> (RoomName(n))) |
88 | do_parse!(tag!("ROOM_NAME") >> eol >> n: a_line >> (RoomName(n))) |
88 | do_parse!(tag!("REMOVE_TEAM") >> eol >> n: a_line >> (RemoveTeam(n))) |
89 | do_parse!(tag!("REMOVE_TEAM") >> eol >> n: a_line >> (RemoveTeam(n))) |
89 |
90 |
90 | do_parse!(tag!("PROTO") >> eol >> d: u32_line >> (Proto(d))) |
91 | do_parse!(tag!("PROTO") >> eol >> d: u16_line >> (Proto(d))) |
91 |
92 |
92 | do_parse!(tag!("QUIT") >> msg: opt_param >> (Quit(msg))) |
93 | do_parse!(tag!("QUIT") >> msg: opt_param >> (Quit(msg))) |
93 )); |
94 )); |
94 |
95 |
95 /** Recognizes messages preceded with CMD */ |
96 /** Recognizes messages preceded with CMD */ |