Skip to main content

basic/
basic.rs

1//! Minimal example: generate one of each ID type.
2//!
3//! Run with: `cargo run --example basic`
4
5use id_forge::{nanoid, snowflake::Snowflake, ulid::Ulid, uuid::Uuid};
6
7fn main() {
8    let v4 = Uuid::v4();
9    println!("UUID v4:    {v4} (version={})", v4.version());
10    println!("UUID v7:    {}", Uuid::v7());
11    println!("UUID nil:   {}", Uuid::nil());
12
13    let a = Ulid::new();
14    let b = Ulid::new();
15    println!("ULID a:     {a}");
16    println!("ULID b:     {b} (monotonic: {})", b > a);
17
18    let gen = Snowflake::new(1);
19    println!("Snowflake:  {}", gen.next_id());
20
21    println!("NanoID 21:  {}", nanoid::generate());
22    println!("NanoID 8:   {}", nanoid::with_length(8));
23
24    assert_eq!(v4, Uuid::parse_str(&v4.to_string()).unwrap());
25    assert_eq!(a, Ulid::parse_str(&a.to_string()).unwrap());
26}