diff -r 0135e64c6c66 -r c4fd2813b127 gameServer2/src/protocol/mod.rs --- a/gameServer2/src/protocol/mod.rs Wed May 16 18:22:28 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -use netbuf; -use std::io::Read; -use std::io::Result; -use nom::IResult; - -pub mod messages; -mod parser; - -pub struct ProtocolDecoder { - buf: netbuf::Buf, - consumed: usize, -} - -impl ProtocolDecoder { - pub fn new() -> ProtocolDecoder { - ProtocolDecoder { - buf: netbuf::Buf::new(), - consumed: 0, - } - } - - pub fn read_from(&mut self, stream: &mut R) -> Result { - self.buf.read_from(stream) - } - - pub fn extract_messages(&mut self) -> Vec { - let parse_result = parser::extract_messages(&self.buf[..]); - match parse_result { - IResult::Done(tail, msgs) => { - self.consumed = self.buf.len() - self.consumed - tail.len(); - msgs - }, - IResult::Incomplete(_) => unreachable!(), - IResult::Error(_) => unreachable!(), - } - } - - pub fn sweep(&mut self) { - self.buf.consume(self.consumed); - self.consumed = 0; - } -}