ids/cuid

Generating a cuid. The implementation requires a counter, so an actor is used to keep track of that state. This means before generating a cuid, an actor needs to be started and all work is done via a channel.

Slugs are also supported.

Usage

import ids/cuid

assert Ok(channel) = cuid.start()

let id = cuid.gen(channel)

let slug = cuid.slug(channel)

Types

pub opaque type Message
pub opaque type State

Functions

pub fn gen(channel: Sender(Message)) -> String
pub fn is_cuid(id: String) -> Bool
pub fn is_slug(slug: String) -> Bool
pub fn slug(channel: Sender(Message)) -> String
pub fn start() -> Result(Sender(Message), StartError)