1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
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()
    }
}