fn print_debug(&self) {
        let (workers, clients): (Vec<&Client>, Vec<&Client>) =
            self.clients.values().partition(|&client| client.is_worker);

        println!(
            "[{} workers; {} clients; {} topics; {} tasks, {} waiting]",
            &workers.len(),
            &clients.len(),
            &self.topics.len(),
            &self.tasks.len(),
            &self.tasks_to_retry.len(),
        );
    }
// TODO: should be accessible from a dedicated socket and only when the client ask for it
//       it will speed up the overall process since it wouldn't have to use stdout for each task
should be accessible from a dedicated socket and only when the client ask for it
it will speed up the overall process since it wouldn't have to use stdout for each task
should be accessible from a dedicated socket and only when the client ask for it it will speed up the overall process since it wouldn ' t have to use stdout for each task
fn print_debug(&self) {
        let (workers, clients): (Vec<&Client>, Vec<&Client>) =
            self.clients.values().partition(|&client| client.is_worker);
        println!(
            "[{} workers; {} clients; {} topics; {} tasks, {} waiting]",
            &workers.len(),
            &clients.len(),
            &self.topics.len(),
            &self.tasks.len(),
            &self.tasks_to_retry.len(),
        );
    }
fn print_debug ( & self ) { let ( workers , clients ) : ( Vec < & Client > , Vec < & Client > ) = self . clients . values ( ) . partition ( | & client | client . is_worker ) ; println ! ( " " workers len ( ) clients len ( ) self topics len ( ) self tasks len ( ) self tasks_to_retry len ( ) ) ; }
TODO: should be accessible from a dedicated socket and only when the client ask for it
it will speed up the overall process since it wouldn't have to use stdout for each task
TODO : should be accessible from a dedicated socket and only when the client ask for it it will speed up the overall process since it wouldn ' t have to use stdout for each task
&self
&self