1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
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()) } } impl Into<Vec<String>> for LogCollector { fn into(self) -> Vec<String> { self.messages.into_inner() } }