rust/hedgewars-server/src/protocol.rs
changeset 14457 98ef2913ec73
parent 14415 06672690d71b
child 14775 09d46ab83361
equal deleted inserted replaced
14456:a077aac9df01 14457:98ef2913ec73
     1 use netbuf;
     1 use netbuf;
     2 use std::{
     2 use nom::{Err, IResult};
     3     io::{Read, Result}
     3 use std::io::{Read, Result};
     4 };
       
     5 use nom::{
       
     6     IResult, Err
       
     7 };
       
     8 
     4 
     9 pub mod messages;
     5 pub mod messages;
       
     6 mod parser;
    10 #[cfg(test)]
     7 #[cfg(test)]
    11 pub mod test;
     8 pub mod test;
    12 mod parser;
       
    13 
     9 
    14 pub struct ProtocolDecoder {
    10 pub struct ProtocolDecoder {
    15     buf: netbuf::Buf,
    11     buf: netbuf::Buf,
    16     consumed: usize,
    12     consumed: usize,
    17 }
    13 }
    32         let parse_result = parser::extract_messages(&self.buf[..]);
    28         let parse_result = parser::extract_messages(&self.buf[..]);
    33         match parse_result {
    29         match parse_result {
    34             Ok((tail, msgs)) => {
    30             Ok((tail, msgs)) => {
    35                 self.consumed = self.buf.len() - self.consumed - tail.len();
    31                 self.consumed = self.buf.len() - self.consumed - tail.len();
    36                 msgs
    32                 msgs
    37             },
    33             }
    38             Err(Err::Incomplete(_)) => unreachable!(),
    34             Err(Err::Incomplete(_)) => unreachable!(),
    39             Err(Err::Error(_)) | Err(Err::Failure(_)) => unreachable!(),
    35             Err(Err::Error(_)) | Err(Err::Failure(_)) => unreachable!(),
    40         }
    36         }
    41     }
    37     }
    42 
    38