# TaskPool ```rust= struct TaskPool<T> { queue: Queue<T>, consumers: SomeSetOfInFlightTasks, } pub fn new<T>( channel_cap: usize, consumers: usize, handler: Fn(T) -> impl Future<Item = ()> ) -> (Tx, TaskPool<T>) { } let (tx, pool_handle) = task_pool::new( 1024, 10, |msg| async { println!("Got message {:?}", msg); } ); tx.send("hello"); ```