defmodule Piazza.Ecto.UUID do def generate_monotonic() do :os.system_time(:millisecond) |> generate_monotonic() end def generate_monotonic(timestamp) do random = :crypto.strong_rand_bytes(10) <> = <> {:ok, res} = Ecto.UUID.load(<>) res end def from_integer(val) do random = :crypto.strong_rand_bytes(10) <> = <> {:ok, res} = Ecto.UUID.load(<>) res end def decode(<>) do {:ok, {timestamp, rand}} end def decode(_), do: :error end