Skip to main content

cloakrs_locales/
lib.rs

1//! Locale-specific recognizer bundles for cloakrs.
2//!
3//! Country-specific recognizers such as US SSN, Dutch BSN, and UK NINO.
4//!
5//! # Examples
6//!
7//! ```
8//! use cloakrs_core::{EntityType, Locale};
9//!
10//! let scanner = cloakrs_locales::default_registry()
11//!     .into_scanner_builder()
12//!     .locale(Locale::EU)
13//!     .without_masking()
14//!     .build()
15//!     .unwrap();
16//! let result = scanner.scan("BSN 123456782").unwrap();
17//! assert!(result.findings.iter().any(|finding| finding.entity_type == EntityType::Bsn));
18//! ```
19
20mod br_br;
21mod common;
22mod de_de;
23mod en_gb;
24mod eu;
25mod fr_fr;
26mod in_in;
27mod nl_nl;
28
29pub use br_br::{CnpjRecognizer, CpfRecognizer};
30pub use de_de::SteuerIdRecognizer;
31pub use en_gb::{NhsNumberRecognizer, NinoRecognizer};
32pub use fr_fr::InseeNirRecognizer;
33pub use in_in::{AadhaarRecognizer, PanRecognizer};
34pub use nl_nl::BsnRecognizer;
35
36use cloakrs_core::RecognizerRegistry;
37
38/// Returns the crate version.
39#[must_use]
40pub fn version() -> &'static str {
41    env!("CARGO_PKG_VERSION")
42}
43
44/// Builds a registry containing universal recognizers plus locale-specific recognizers.
45///
46/// # Examples
47///
48/// ```
49/// let registry = cloakrs_locales::default_registry();
50/// assert!(!registry.is_empty());
51/// ```
52#[must_use]
53pub fn default_registry() -> RecognizerRegistry {
54    let mut registry = cloakrs_patterns::default_registry();
55    register_locale_recognizers(&mut registry);
56    registry
57}
58
59/// Registers locale-specific recognizers into an existing registry.
60///
61/// # Examples
62///
63/// ```
64/// let mut registry = cloakrs_patterns::default_registry();
65/// cloakrs_locales::register_locale_recognizers(&mut registry);
66/// assert!(!registry.is_empty());
67/// ```
68pub fn register_locale_recognizers(registry: &mut RecognizerRegistry) {
69    registry.register(BsnRecognizer);
70    registry.register(SteuerIdRecognizer);
71    registry.register(AadhaarRecognizer);
72    registry.register(PanRecognizer);
73    registry.register(CpfRecognizer);
74    registry.register(CnpjRecognizer);
75    registry.register(InseeNirRecognizer);
76    registry.register(NinoRecognizer);
77    registry.register(NhsNumberRecognizer);
78}