oats-rs

Crates.iooats-rs
lib.rsoats-rs
version0.2.1
sourcesrc
created_at2024-02-26 06:22:21.852627
updated_at2024-03-20 11:35:22.342424
descriptionShort, unique ids without the hassle of random uuids.
homepage
repositoryhttps://github.com/Skailys/oats-rs.git
max_upload_size
id1153067
size32,506
Skai (Skailys)

documentation

https://docs.rs/oats-rs

README

oats

Used 'nightly' toolchain Version 0.1.0

Short, unique ids without the hassle of random uuids.

Thanks

Getting started

Adding library to project

cargo add oats-rs

Using it to generate unique identifiers

    use oats::bowl::{GenerationBehavior, WrappedBowl};
    use std::time::SystemTime;
    
    let wrapped_bowl = WrappedBowl::of(1, GenerationBehavior::Normal, Some(SystemTime::now()));
    let oat = wrapped_bowl.generate();
    
    assert_eq!(oat.node(), 1);

Syntax of Oats

When using ToString, the Oat object is displayed in a mixed format that includes the node ID and a local unique identifier (LUID) with a timestamp and sequence ID. The LUID is encoded as a URL-safe base64 string without padding.

    const ENGINE: FastPortable = FastPortable::from(&URL_SAFE, NO_PAD);
    format!("{:X>2X}{}", &self.node, encode_engine(&self luid.to_le_bytes(), &ENGINE))
Commit count: 32

cargo fmt