divviup_client/
dp_strategy.rs1use num_bigint::BigUint;
2use num_rational::Ratio;
3use serde::{Deserialize, Serialize};
4
5#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq, Default)]
6#[serde(tag = "dp_strategy")]
7#[non_exhaustive]
8pub enum Prio3Histogram {
9 #[default]
10 NoDifferentialPrivacy,
11 PureDpDiscreteLaplace(PureDpDiscreteLaplace),
12}
13
14#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq, Default)]
15#[serde(tag = "dp_strategy")]
16#[non_exhaustive]
17pub enum Prio3SumVec {
18 #[default]
19 NoDifferentialPrivacy,
20 PureDpDiscreteLaplace(PureDpDiscreteLaplace),
21}
22
23#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
24pub struct PureDpDiscreteLaplace {
25 pub budget: PureDpBudget,
26}
27
28#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
29pub struct PureDpBudget {
30 pub epsilon: Ratio<BigUint>,
31}