24 lines
431 B
Rust
24 lines
431 B
Rust
mod single;
|
|
mod double;
|
|
mod error;
|
|
mod triple;
|
|
mod utils;
|
|
|
|
use rand::Rng;
|
|
pub use single::*;
|
|
pub use double::*;
|
|
pub use triple::*;
|
|
pub use error::*;
|
|
|
|
const DOUBLE_ID_SIZE: u32 = (SingleId::SIZE as u32).pow(2);
|
|
const TRIPLE_ID_SIZE: u64 = (SingleId::SIZE as u64).pow(3);
|
|
|
|
pub trait Id {
|
|
type SizeType;
|
|
const NIL: Self;
|
|
const MAX: Self;
|
|
const SIZE: Self::SizeType;
|
|
#[cfg(test)]
|
|
fn is_valid(&self) -> bool;
|
|
}
|
|
|