pub struct EguiQueue { pub queue_vec: Vec>, } impl EguiQueue { pub fn new() -> Self { Self { queue_vec: Vec::new() } } pub fn queue(&mut self, func: impl FnOnce(&egui::Context) + Send + 'static) { self.queue_vec.push(Box::new(func)); } pub fn clear(&mut self) { self.queue_vec.clear() } pub fn run(&mut self, ctx: &egui::Context) { self.queue_vec.drain(..).for_each(|func| func(ctx)); self.clear(); } }