qframework 0.1.2

A experimental micor framework for clear design, based on queue model
Documentation
#![allow(dead_code)]
#![allow(unused_imports)]
#![allow(unused_variables)]
#![allow(unused_mut)]
use std::cmp::Ordering;
use std::rc::{Weak, Rc};
use std::cell::RefCell;
use std::marker::PhantomData;
use super::*;
#[derive(Debug,Clone)]
pub struct Queue{
    customers: Vec<Customer>,
    pub capacity: usize,
}
impl Queue  {
    pub fn new() -> Self {
        return Queue {customers: Default::default(), capacity: 10};
    }
    pub fn size(&self) -> usize {
        self.customers.len()
    }
    pub fn insert( &mut self, ctx: &mut Context, customer: Customer) {
        let mut  server = ctx.get_servers();
        let mut sim = ctx.get_simulator();
        let t = sim.get_clock();
        if server.is_available() {
            server.insert( ctx, Some(customer));
        } else if self.customers.len() >= self.capacity  {
            println!("{:?} dropped  {:?} ", sim.get_clock(), customer);
        } else {
            self.customers.push(customer);
        }

    }
    pub fn remove(&mut self) -> Option<Customer>{
        self.customers.pop()
    }

}
#[test]
fn test_job_queue(){

    let mut queue :Queue = Queue::new();
    assert_eq!( queue.customers, vec![] );
}