pub struct LinkageAttack { /* private fields */ }Expand description
Linkage attack evaluator.
Checks if synthetic records can be uniquely re-identified in the original dataset based on quasi-identifier fields.
Implementations§
Source§impl LinkageAttack
impl LinkageAttack
Sourcepub fn new(config: LinkageConfig) -> Self
pub fn new(config: LinkageConfig) -> Self
Create a new linkage attack evaluator.
Sourcepub fn with_defaults() -> Self
pub fn with_defaults() -> Self
Create with default configuration.
Sourcepub fn evaluate(
&self,
original_qis: &[Vec<String>],
synthetic_qis: &[Vec<String>],
) -> LinkageResults
pub fn evaluate( &self, original_qis: &[Vec<String>], synthetic_qis: &[Vec<String>], ) -> LinkageResults
Run the linkage attack evaluation.
§Arguments
original_qis- Quasi-identifier tuples from the original dataset. Each entry is a record represented as a Vec of string-valued QI fields.synthetic_qis- Quasi-identifier tuples from the synthetic dataset.
§Example
ⓘ
// Each record has QI fields: [age_bucket, zip_prefix, gender]
let original = vec![
vec!["30-39".into(), "100".into(), "M".into()],
vec!["40-49".into(), "200".into(), "F".into()],
];
let synthetic = vec![
vec!["30-39".into(), "100".into(), "M".into()],
];
let results = attack.evaluate(&original, &synthetic);Auto Trait Implementations§
impl Freeze for LinkageAttack
impl RefUnwindSafe for LinkageAttack
impl Send for LinkageAttack
impl Sync for LinkageAttack
impl Unpin for LinkageAttack
impl UnsafeUnpin for LinkageAttack
impl UnwindSafe for LinkageAttack
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.