1use zer_core::{record::Record, schema::Schema};
2
3pub mod alias;
4pub mod date;
5pub mod document;
6pub mod exact;
7pub mod phonetic;
8pub mod phonetic_initial;
9pub mod suffix;
10pub mod token;
11pub mod transliterated;
12pub mod vehicle;
13
14pub use alias::{AliasPhoneticKey, FuzzyYearKey};
15pub use date::{DateFragmentKey, DateGranularity};
16pub use document::{DocumentDigitSuffixKey, DocumentSuffixKey};
17pub use exact::ExactFieldKey;
18pub use phonetic::{PhoneticAlgo, PhoneticNameDobKey};
19pub use phonetic_initial::PhoneticNameDobInitialKey;
20pub use suffix::SuffixKey;
21pub use token::AddressInitialKey;
22pub use transliterated::TransliteratedPhoneticKey;
23pub use vehicle::{CameraTimeWindowKey, GeoGridKey, LicensePlateNormKey, PlateOCRFuzzyKey};
24
25pub trait BlockingKey: Send + Sync {
28 fn name(&self) -> &str;
29 fn extract(&self, record: &Record, schema: &Schema) -> Vec<String>;
30}