///|
priv struct Manager {} derive(Hash)
///|
impl @moonchor.Location for Manager with fn name(_) {
"MoonlightManager"
}
///|
fn Manager::new() -> Manager {
Manager::{ }
}
///|
priv struct ManagerState {
mut counter : Int
worker_list : Array[Worker]
}
///|
fn ManagerState::new(worker_list : Array[Worker]) -> ManagerState {
ManagerState::{ counter: 0, worker_list, }
}
///|
fn ManagerState::get_worker(self : ManagerState) -> Worker {
let worker = self.worker_list[self.counter % self.worker_list.length()]
self.counter = self.counter + 1
worker
}
///|
impl Show for Manager with fn output(_, logger) {
logger.write_string("Manager")
}