newtype/
newtype.rs

1use short_id::ShortId;
2
3fn main() {
4    // Create a random ID
5    let id1 = ShortId::random();
6    println!("Random ID: {}", id1);
7
8    // Create a time-ordered ID
9    let id2 = ShortId::ordered();
10    println!("Ordered ID: {}", id2);
11
12    // Access as string slice
13    let s: &str = id1.as_str();
14    println!("As str: {}", s);
15
16    // Use AsRef<str>
17    print_id(&id2);
18
19    // Convert to String
20    let string: String = id1.clone().into_string();
21    println!("Into String: {}", string);
22
23    // Create from String
24    let id3: ShortId = string.into();
25    println!("From String: {}", id3);
26
27    // Compare IDs (PartialEq, Ord)
28    let id4 = ShortId::random();
29    let id5 = ShortId::random();
30    println!("\nIDs are equal: {}", id4 == id5);
31    println!("ID4 < ID5: {}", id4 < id5);
32}
33
34fn print_id<T: AsRef<str>>(id: &T) {
35    println!("Using AsRef: {}", id.as_ref());
36}