gameServer2/src/protocol/parser.rs
changeset 13796 59ea2403f62d
parent 13795 e335daaa77a9
child 13798 4664da990556
equal deleted inserted replaced
13795:e335daaa77a9 13796:59ea2403f62d
    12 use std::{
    12 use std::{
    13     str, str::FromStr,
    13     str, str::FromStr,
    14     ops::Range
    14     ops::Range
    15 };
    15 };
    16 use super::{
    16 use super::{
    17     messages::{HWProtocolMessage, HWProtocolMessage::*},
    17     messages::{HWProtocolMessage, HWProtocolMessage::*}
    18     test::gen_proto_msg
       
    19 };
    18 };
       
    19 #[cfg(test)]
       
    20 use super::test::gen_proto_msg;
    20 use crate::server::coretypes::{
    21 use crate::server::coretypes::{
    21     HedgehogInfo, TeamInfo, GameCfg, VoteType, MAX_HEDGEHOGS_PER_TEAM
    22     HedgehogInfo, TeamInfo, GameCfg, VoteType, MAX_HEDGEHOGS_PER_TEAM
    22 };
    23 };
    23 
    24 
    24 named!(end_of_message, tag!("\n\n"));
    25 named!(end_of_message, tag!("\n\n"));
   240     )
   241     )
   241 );
   242 );
   242 
   243 
   243 named!(pub extract_messages<&[u8], Vec<HWProtocolMessage> >, many0!(complete!(message)));
   244 named!(pub extract_messages<&[u8], Vec<HWProtocolMessage> >, many0!(complete!(message)));
   244 
   245 
       
   246 #[cfg(test)]
   245 proptest! {
   247 proptest! {
   246     #[test]
   248     #[test]
   247     fn is_parser_composition_idempotent(ref msg in gen_proto_msg()) {
   249     fn is_parser_composition_idempotent(ref msg in gen_proto_msg()) {
   248         println!("!! Msg: {:?}, Bytes: {:?} !!", msg, msg.to_raw_protocol().as_bytes());
   250         println!("!! Msg: {:?}, Bytes: {:?} !!", msg, msg.to_raw_protocol().as_bytes());
   249         assert_eq!(message(msg.to_raw_protocol().as_bytes()), Ok((&b""[..], msg.clone())))
   251         assert_eq!(message(msg.to_raw_protocol().as_bytes()), Ok((&b""[..], msg.clone())))