EGY4FRB6W4UYNKO25HK26NC66NMXR4FM2DGQPW3UGFZQ64Q2EXCAC struct Message<T> {kind: String,payload: T,}trait MessageHandler<T> {fn can_handle_message_kinds(&self) -> [String];fn handle(&self, msg: &Message<T>);}trait Mediator {fn register<T>(handler: dyn MessageHandler<T>);fn signal<T>(msg: &Message<T>);}