oysterpack_uid

Crates.iooysterpack_uid
lib.rsoysterpack_uid
version0.2.0
sourcesrc
created_at2018-10-18 21:04:47.745487
updated_at2018-11-04 19:42:32.121979
descriptionOysterPack UID is used to generate unique identifiers
homepagehttps://github.com/oysterpack/oysterpack/tree/master/oysterpack-uid
repositoryhttps://github.com/oysterpack/oysterpack
max_upload_size
id91406
size46,217
(oysterpack)

documentation

https://docs.rs/oysterpack_uid

README

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{}
TypedULID
TypedULID
type FooId = Uid<dyn Foo + Send + Sync>;
let id = FooId::new();

By default, Uid is serializable via serde. If serialization is not needed then you can opt out by including the dependency with default features disabled : default-features = false.

Commit count: 433

cargo fmt