use protocol::Protocol;
use transport::Transport;
use Result;

pub trait Processor<P: Protocol, T: Transport> {
    fn process(&mut self, prot: &mut P, transport: &mut T) -> Result<()>;
}


use protocol::Protocol;
use transport::Transport;
use Result;

pub trait Processor<P: Protocol, T: Transport> {
    fn process(&self, prot: &mut P, transport: &mut T) -> Result<()>;
}


Change Processor::process to receive &self
Change Processor::process to receive &self

This allows a Sync Processor to be used in a multithreaded context.
