22 }; |
22 }; |
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!(cmd_arg<&[u8], String>, |
|
28 map!(map_res!(take_until_either!(" \n"), str::from_utf8), String::from)); |
27 named!( u8_line<&[u8], u8>, map_res!(str_line, FromStr::from_str)); |
29 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)); |
30 named!(u16_line<&[u8], u16>, map_res!(str_line, FromStr::from_str)); |
29 named!(u32_line<&[u8], u32>, map_res!(str_line, FromStr::from_str)); |
31 named!(u32_line<&[u8], u32>, map_res!(str_line, FromStr::from_str)); |
30 named!(yes_no_line<&[u8], bool>, alt!( |
32 named!(yes_no_line<&[u8], bool>, alt!( |
31 do_parse!(tag_no_case!("YES") >> (true)) |
33 do_parse!(tag_no_case!("YES") >> (true)) |
102 | do_parse!(tag_no_case!("REGISTERED_ONLY") >> (ToggleServerRegisteredOnly)) |
104 | do_parse!(tag_no_case!("REGISTERED_ONLY") >> (ToggleServerRegisteredOnly)) |
103 | do_parse!(tag_no_case!("SUPER_POWER") >> (SuperPower)) |
105 | do_parse!(tag_no_case!("SUPER_POWER") >> (SuperPower)) |
104 | do_parse!(tag_no_case!("PART") >> m: opt_space_param >> (Part(m))) |
106 | do_parse!(tag_no_case!("PART") >> m: opt_space_param >> (Part(m))) |
105 | do_parse!(tag_no_case!("QUIT") >> m: opt_space_param >> (Quit(m))) |
107 | do_parse!(tag_no_case!("QUIT") >> m: opt_space_param >> (Quit(m))) |
106 | do_parse!(tag_no_case!("DELEGATE") >> spaces >> n: a_line >> (Delegate(n))) |
108 | do_parse!(tag_no_case!("DELEGATE") >> spaces >> n: a_line >> (Delegate(n))) |
|
109 | do_parse!(tag_no_case!("SAVE") >> spaces >> n: cmd_arg >> spaces >> l: cmd_arg >> (Save(n, l))) |
|
110 | do_parse!(tag_no_case!("DELETE") >> spaces >> n: a_line >> (Delete(n))) |
107 | do_parse!(tag_no_case!("SAVEROOM") >> spaces >> r: a_line >> (SaveRoom(r))) |
111 | do_parse!(tag_no_case!("SAVEROOM") >> spaces >> r: a_line >> (SaveRoom(r))) |
108 | do_parse!(tag_no_case!("LOADROOM") >> spaces >> r: a_line >> (LoadRoom(r))) |
112 | do_parse!(tag_no_case!("LOADROOM") >> spaces >> r: a_line >> (LoadRoom(r))) |
109 | do_parse!(tag_no_case!("DELETE") >> spaces >> r: a_line >> (Delete(r))) |
|
110 | do_parse!(tag_no_case!("GLOBAL") >> spaces >> m: a_line >> (Global(m))) |
113 | do_parse!(tag_no_case!("GLOBAL") >> spaces >> m: a_line >> (Global(m))) |
111 | do_parse!(tag_no_case!("WATCH") >> spaces >> i: a_line >> (Watch(i))) |
114 | do_parse!(tag_no_case!("WATCH") >> spaces >> i: a_line >> (Watch(i))) |
112 | do_parse!(tag_no_case!("GREETING") >> spaces >> m: a_line >> (Greeting(m))) |
115 | do_parse!(tag_no_case!("GREETING") >> spaces >> m: a_line >> (Greeting(m))) |
113 | do_parse!(tag_no_case!("VOTE") >> spaces >> m: yes_no_line >> (Vote(m))) |
116 | do_parse!(tag_no_case!("VOTE") >> spaces >> m: yes_no_line >> (Vote(m))) |
114 | do_parse!(tag_no_case!("FORCE") >> spaces >> m: yes_no_line >> (ForceVote(m))) |
117 | do_parse!(tag_no_case!("FORCE") >> spaces >> m: yes_no_line >> (ForceVote(m))) |