//! ID Generation Module
//!
//! This module defines the `IdGenerator` trait and provides implementations for generating unique
//! identifiers using different strategies, including CUID and UUID. The choice of ID generator
//! is controlled through feature flags (`cuid`, `ulid`, and `uuid`).
/// A trait for generating unique identifiers.
///
/// Implementations of this trait define how new unique IDs are created.
/// The associated type `IdType` represents the type of the generated ID.
///
/// # Example
/// ```rust
/// use tagid::IdGenerator;
///
/// struct MyIdGenerator;
///
/// impl IdGenerator for MyIdGenerator {
/// type IdType = u64;
///
/// fn next_id_rep() -> Self::IdType {
/// 42 // Example static ID (replace with a real generator)
/// }
/// }
/// ```