cram 0.1.2

Cram realy awesome middleware
Documentation
use crossbeam::{Receiver, Sender};
use std::boxed::Box;
use std::vec::Vec;
use std::ops::Fn;
use std::thread;
use std::sync::Arc;

use crate::node::thread_pool::ThreadMessage;

use super::Simple;


impl Simple {
    pub fn new<F>(fun: F, input_channel : Receiver<Vec<u8>> ) -> Simple
    where
        F: Fn(Vec<u8>) + Send + Sync + 'static,
    { 
        Simple {
            input_channel : input_channel,
            handler : Arc::new( Box::new(fun)),
        }
    }

    pub fn start(self, s : Sender<ThreadMessage>){
        thread::spawn(move || loop {
            
            let vec;    
            match self.input_channel.recv() {
                Ok(val) => vec = val,
                Err(_e) => break,
            }

            let th_message = ThreadMessage::new_with_stateless(self.handler.clone(), vec );
            s.send(th_message).unwrap();
            
        });
    }
}