Crate oysterpack_uid[−][src]
Provides support for universally unique identifiers that confirm to the ULID spec.
You can generate ULIDs as String or u128. You can convert ULIDs between String and u128.
use oysterpack_uid::{ ulid, ulid_u128, ulid_u128_into_string, ulid_str_into_u128 }; // generates a new ULID as a string let id_str = ulid(); // generates a new ULID as u128 let id_u128 = ulid_u128(); // conversions between string and u128 ULIDs let ulid_str = ulid_u128_into_string(id_u128); assert_eq!(ulid_str_into_u128(&ulid_str).unwrap(), id_u128);
You can define type safe ULID based unique identifiers (Uid):
Uid for structs
use oysterpack_uid::Uid; struct User; type UserId = Uid<User>; let id = UserId::new();
Uid for traits
use oysterpack_uid::Uid; trait Foo{} // Send + Sync are added to the type def in order to satisfy Uid type constraints for thread safety, // i.e., in order to be able to send the Uid across threads. type FooId = Uid<dyn Foo + Send + Sync>; let id = FooId::new();
By default, Uiddefault-features = false
.
Re-exports
pub use uid::Uid; |
pub use uid::ulid; |
pub use uid::ulid_str_into_u128; |
pub use uid::ulid_u128; |
pub use uid::ulid_u128_into_string; |
Modules
uid |
Provides a typesafe ULID |