divviup_client/
dp_strategy.rsuse num_bigint::BigUint;
use num_rational::Ratio;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq, Default)]
#[serde(tag = "dp_strategy")]
#[non_exhaustive]
pub enum Prio3Histogram {
#[default]
NoDifferentialPrivacy,
PureDpDiscreteLaplace(PureDpDiscreteLaplace),
}
#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq, Default)]
#[serde(tag = "dp_strategy")]
#[non_exhaustive]
pub enum Prio3SumVec {
#[default]
NoDifferentialPrivacy,
PureDpDiscreteLaplace(PureDpDiscreteLaplace),
}
#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
pub struct PureDpDiscreteLaplace {
pub budget: PureDpBudget,
}
#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
pub struct PureDpBudget {
pub epsilon: Ratio<BigUint>,
}