defmodule Crosswake.Threadline.Id do @moduledoc """ RFC-4122 v4 UUID minting for Crosswake Threadline. """ @doc """ Generates a canonical 36-char hyphenated RFC-4122 v4 UUID. """ @spec generate() :: String.t() def generate do <> = :crypto.strong_rand_bytes(16) raw = <> hex = Base.encode16(raw, case: :lower) <> = hex "#{a}-#{b}-#{c}-#{d}-#{e}" end end