use std::sync::{Arc, Mutex};
use std::vec::Vec;
use super::Export;
use crate::protocol::InstanceMessage;
use crate::to_static::ToStatic;
#[derive(Debug)]
pub struct TestExporter {
pub spans: Arc<Mutex<Vec<InstanceMessage<'static>>>>,
}
impl TestExporter {
pub fn new() -> (Self, Arc<Mutex<Vec<InstanceMessage<'static>>>>) {
let spans = Arc::new(Mutex::new(Vec::new()));
(
Self {
spans: spans.clone(),
},
spans,
)
}
}
impl Export for TestExporter {
fn export(&self, message: InstanceMessage<'_>) {
self.spans.lock().unwrap().push(message.to_static());
}
}