-
Notifications
You must be signed in to change notification settings - Fork 0
Description
We have a Budget trait to define filter capacity and requests. It's currently only a marker trait, and we can keep it this way. The marker trait is implemented for our PureDP budget struct and the corresponding filters. We should change the struct to use OpenDP's MaxDivergence, then call the composition function inside the filter: https://docs.rs/opendp/0.12.0-nightly.20250205.1/src/opendp/combinators/sequential_compositor/noninteractive/mod.rs.html#111-118. I haven't checked in detail if this is enough to obtain a filter and whether this will require to import all sorts of OpenDP traits, but it seems quite doable.
We can even be a bit more general and implement a generic filter for any type implementing https://docs.rs/opendp/0.12.0-nightly.20250205.1/opendp/combinators/trait.BasicCompositionMeasure.html, which could give us RDP and zCDP for free, but needs a bit more investigation. We'd also need to match the mechanism/noise scale to the appropriate measure, e.g. use only PureDP for Laplace noise. See #10 (non blocking, either issue can be tackled first).