1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
use std::cell::RefCell; #[derive(Default)] pub struct LogCollector { messages: RefCell<Vec<String>>, } impl LogCollector { pub fn log(&self, message: &str) { self.messages.borrow_mut().push(message.to_string()) } pub fn output(self) -> Vec<String> { self.messages.into_inner() } }