[−][src]Struct b2dp::mechanisms::exponential::ExponentialOptions
The exponential mechanism optional parameters.
Fields
min_retries: u32
The minimum number of retries for timing channel prevention
default: 1
Minimum retries helps to mitigate timing channels in optimized
sampling. The higher the number of retries, the less likely
it is for an adversary to observe useful timing information.
optimized_sample: bool
Whether to optimize sampling
default: false
Optimized sampling exacerbates timing channels, and it's not
recommended for use in un-trusted settings.
empirical_precision: bool
Whether to use empirical precision
default: false
Determination of safe precision given utility bounds and outcome
set size limits can be done analytically or empirically. Both
are independent of the dataset. Using empirical_precision = true
determines the required precision via a set of test calculations.
The timing overhead of these calculations is proportional to the outcome
set size, and the overhead may outweigh any reduction in required
precision.
Trait Implementations
impl Clone for ExponentialOptions
[src]
fn clone(&self) -> ExponentialOptions
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Copy for ExponentialOptions
[src]
impl Debug for ExponentialOptions
[src]
impl Default for ExponentialOptions
[src]
fn default() -> ExponentialOptions
[src]
Default options for the exponential mechanism
min_retries = 1
, optimized_sample = false
, empirical_precision = false
Auto Trait Implementations
impl RefUnwindSafe for ExponentialOptions
impl Send for ExponentialOptions
impl Sync for ExponentialOptions
impl Unpin for ExponentialOptions
impl UnwindSafe for ExponentialOptions
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Az for T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> CheckedAs for T
[src]
fn checked_as<Dst>(self) -> Option<Dst> where
T: CheckedCast<Dst>,
[src]
T: CheckedCast<Dst>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> OverflowingAs for T
[src]
fn overflowing_as<Dst>(self) -> (Dst, bool) where
T: OverflowingCast<Dst>,
[src]
T: OverflowingCast<Dst>,
impl<T> SaturatingAs for T
[src]
fn saturating_as<Dst>(self) -> Dst where
T: SaturatingCast<Dst>,
[src]
T: SaturatingCast<Dst>,
impl<T> StaticAs for T
[src]
fn static_as<Dst>(self) -> Option<Dst> where
T: StaticCast<Dst>,
[src]
T: StaticCast<Dst>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> WrappingAs for T
[src]
fn wrapping_as<Dst>(self) -> Dst where
T: WrappingCast<Dst>,
[src]
T: WrappingCast<Dst>,