mio-gate 0.1.2

a server lib base on mio
Documentation
use std::io;

use mio::{Poll, Events};

use crate::header::EventTag;

use self::gate::Gate;

mod gate;
mod hub;
mod line;


pub struct Server {
    p:Poll,
    events:Events,
    gate:Gate
}

impl Server {
    pub fn new(addr:&str) -> io::Result<Server> {
        let p = Poll::new()?;
        let events = Events::with_capacity(u8::MAX.into());
        let gate = Gate::new(addr,&p)?;
        Ok(Server { p, events , gate })
    }

    pub fn start(&mut self,f:fn(tag:EventTag,data:&[u8])) {
        self.gate.hub.set_hook(f);
        loop {
            self.p.poll(&mut self.events, None).unwrap();
            for event in self.events.iter() {
                self.gate.process(event,&self.p);
            }
        }
    }

   
}