diff-priv 0.1.0

k-anonymity, (c,l)-diversity and ε-differential privacy framework
Documentation
use crate::data_manipulation::anonymizable::Anonymizable;
use crate::publishing::publisher::Publisher;
use crate::test::csv_exporter::CsvExporter;
use uuid::Uuid;

pub struct CsvPublisher<'a> {
    exporter: &'a mut CsvExporter,
}

impl<'a> CsvPublisher<'a> {
    pub fn new(exporter: &'a mut CsvExporter) -> Self {
        Self { exporter }
    }
}

impl<'a> Publisher for CsvPublisher<'a> {
    fn publish<M: Anonymizable>(&mut self, value: M, uuid: Uuid, dr: f64) {
        self.exporter.add(value.extract_string_values(uuid, dr));
    }
}