gameServer2/src/protocol/parser.rs
changeset 12140 7e259e47eb0d
parent 12137 193dfdcb0620
child 12142 4d7d41be1993
equal deleted inserted replaced
12139:f3121d7dedec 12140:7e259e47eb0d
   109     alt!(
   109     alt!(
   110           basic_message
   110           basic_message
   111         | one_param_message
   111         | one_param_message
   112         | cmd_message
   112         | cmd_message
   113         | complex_message
   113         | complex_message
   114         | malformed_message
       
   115         ), end_of_message
   114         ), end_of_message
   116     )
   115     )
       
   116     | terminated!(malformed_message, end_of_message)
   117     | empty_message
   117     | empty_message
   118     )
   118     )
   119 );
   119 );
   120 
   120 
   121 named!(pub extract_messages<&[u8], Vec<HWProtocolMessage> >, many0!(complete!(message)));
   121 named!(pub extract_messages<&[u8], Vec<HWProtocolMessage> >, many0!(complete!(message)));
   129     assert_eq!(message(b"QUIT\nbye-bye\n\n"), IResult::Done(&b""[..], Quit(Some("bye-bye"))));
   129     assert_eq!(message(b"QUIT\nbye-bye\n\n"), IResult::Done(&b""[..], Quit(Some("bye-bye"))));
   130     assert_eq!(message(b"QUIT\n\n"),          IResult::Done(&b""[..], Quit(None)));
   130     assert_eq!(message(b"QUIT\n\n"),          IResult::Done(&b""[..], Quit(None)));
   131     assert_eq!(message(b"CMD\nwatch\ndemo\n\n"), IResult::Done(&b""[..], Watch("demo")));
   131     assert_eq!(message(b"CMD\nwatch\ndemo\n\n"), IResult::Done(&b""[..], Watch("demo")));
   132     assert_eq!(message(b"BAN\nme\nbad\n77\n\n"), IResult::Done(&b""[..], Ban("me", "bad", 77)));
   132     assert_eq!(message(b"BAN\nme\nbad\n77\n\n"), IResult::Done(&b""[..], Ban("me", "bad", 77)));
   133 
   133 
       
   134     assert_eq!(extract_messages(b"QUIT\n1\n2\n\n"),    IResult::Done(&b""[..], vec![Malformed]));
       
   135 
   134     assert_eq!(extract_messages(b"PING\n\nPING\n\nP"), IResult::Done(&b"P"[..], vec![Ping, Ping]));
   136     assert_eq!(extract_messages(b"PING\n\nPING\n\nP"), IResult::Done(&b"P"[..], vec![Ping, Ping]));
   135     assert_eq!(extract_messages(b"SING\n\nPING\n\n"),  IResult::Done(&b""[..],  vec![Malformed, Ping]));
   137     assert_eq!(extract_messages(b"SING\n\nPING\n\n"),  IResult::Done(&b""[..],  vec![Malformed, Ping]));
   136     assert_eq!(extract_messages(b"\n\n\n\nPING\n\n"),  IResult::Done(&b""[..],  vec![Empty, Empty, Ping]));
   138     assert_eq!(extract_messages(b"\n\n\n\nPING\n\n"),  IResult::Done(&b""[..],  vec![Empty, Empty, Ping]));
   137     assert_eq!(extract_messages(b"\n\n\nPING\n\n"),    IResult::Done(&b""[..],  vec![Empty, Empty, Ping]));
   139     assert_eq!(extract_messages(b"\n\n\nPING\n\n"),    IResult::Done(&b""[..],  vec![Empty, Empty, Ping]));
   138 }
   140 }