TimeflakeTiny-rs
Timeflake Tiny is a 64-bit sized timebased unique, roughly-ordered and compatible with sqlite. Inspired by original library timeflake-rs that is 128-bit sized.
Example code
use TimeflakeTiny;
fn main() {
let time = SystemTime::now().duration_since(UNIX_EPOCH).unwrap();
println!("{}", TimeflakeTiny::random().unwrap());
println!("{}", TimeflakeTiny::from_values(time, Some(0)).unwrap());
println!("{}", TimeflakeTiny::from_values(time, None).unwrap());
let tiny = TimeflakeTiny::from_values(Duration::from_millis(SOME_TIME), Some(SOME_RAND)).unwrap();
let huge = Timeflake::from_values(Duration::from_millis(SOME_TIME), Some(SOME_RAND as u128)).unwrap();
assert_eq!(huge.get_uuid(), tiny.get_uuid());
let huge_from_tiny = TimeflakeTiny::to_timeflake(&tiny).unwrap();
let reverted = TimeflakeTiny::from_timeflake(&huge_from_tiny).unwrap();
assert_eq!(huge.get_uuid(), huge_from_tiny.get_uuid());
assert_eq!(tiny.get_uuid(), reverted.get_uuid());
}