pub struct UndoAction {
pub description: String,
action: Box<dyn FnOnce() + Send>,
}
impl UndoAction {
pub fn new(description: String, action: Box<dyn FnOnce() + Send>) -> Self {
Self { description, action }
}
pub fn execute(self) {
(self.action)();
}
}