use std::cell::RefCell; #[derive(Default)] crate struct Log { data: RefCell>, } impl Log { crate fn add(&self, text: impl Into) { self.data.borrow_mut().push(text.into()); } crate fn take(&self) -> Vec { std::mem::replace(&mut *self.data.borrow_mut(), vec![]) } }