crates/nornir-identity-directory/src/lib.rs
//! **The directory, one copy for every product** (A34 M-6).
//!
//! * `names`: [`names::normalize_user_name`] (NFKC, no mixed scripts:
//! A34-43), [`names::normalize_domain`] and
//! [`names::principal_id_candidates`] (A34-42).
//! * `csv`: [`csv::parse_csv`], the CSV an account without SCIM imports, its
//! one size limit (A34-44) and the export quoting (A34-45); and
//! [`import`], the import planned whole and applied in ONE write
//! (A34-17), naming the people whose sessions it ended (A34-9).
//! * `scim`: [`scim::handle`], SCIM 2.0 Users/Groups (filter, paging,
//! PatchOp) over the product's [`model::DirectoryStore`], and
//! [`scim::bearer`]: expiry, read-only scope and the refusal flood guard
//! (A34-27).
//!
//! Storage, randomness and the clock stay the product's. Every feature is
//! off by default, so a build that names none links nothing.
#[cfg(feature = "names")]
pub mod names;
#[cfg(any(feature = "csv", feature = "scim"))]
pub mod model;
#[cfg(feature = "csv")]
pub mod csv;
#[cfg(feature = "csv")]
pub mod import;
#[cfg(feature = "scim")]
pub mod scim;