diff_priv/publishing/
csv_publisher.rs

1use crate::data_manipulation::anonymizable::Anonymizable;
2use crate::publishing::publisher::Publisher;
3use crate::test::csv_exporter::CsvExporter;
4use uuid::Uuid;
5
6pub struct CsvPublisher<'a> {
7    exporter: &'a mut CsvExporter,
8}
9
10impl<'a> CsvPublisher<'a> {
11    pub fn new(exporter: &'a mut CsvExporter) -> Self {
12        Self { exporter }
13    }
14}
15
16impl<'a> Publisher for CsvPublisher<'a> {
17    fn publish<M: Anonymizable>(&mut self, value: M, uuid: Uuid, dr: f64) {
18        self.exporter.add(value.extract_string_values(uuid, dr));
19    }
20}