mod private
{
use crate::IdentityInterface;
pub trait HasIdGenerator< Id >
where
Id : IdentityInterface,
{
type Generator : IdGeneratorTrait< Id >;
}
pub trait IdGeneratorTrait< Id >
where
Id : IdentityInterface,
Self : Default,
{
fn id_next( &mut self ) -> Id;
fn is_id_valid( &self, src : Id ) -> bool;
}
}
crate::mod_interface!
{
prelude use super::private::
{
HasIdGenerator,
IdGeneratorTrait,
};
}