-module(ids@uuid). -compile(no_auto_import). -export([v4/0]). -spec v4() -> binary(). v4() -> <> = crypto:strong_rand_bytes(16), <> = <>, Id = <<(e(A1)), (e(A2)), (e(A3)), (e(A4)), (e(A5)), (e(A6)), (e(A7)), (e(A8)), 45, (e(B1)), (e(B2)), (e(B3)), (e(B4)), 45, (e(C1)), (e(C2)), (e(C3)), (e(C4)), 45, (e(D1)), (e(D2)), (e(D3)), (e(D4)), 45, (e(E1)), (e(E2)), (e(E3)), (e(E4)), (e(E5)), (e(E6)), (e(E7)), (e(E8)), (e(E9)), (e(E10)), (e(E11)), (e(E12))>>, case gleam@bit_string:to_string(Id) of {ok, Id_string} -> Id_string; _@3 -> <<""/utf8>> end. -spec e(integer()) -> integer(). e(N) -> case N of 0 -> 48; 1 -> 49; 2 -> 50; 3 -> 51; 4 -> 52; 5 -> 53; 6 -> 54; 7 -> 55; 8 -> 56; 9 -> 57; 10 -> 97; 11 -> 98; 12 -> 99; 13 -> 100; 14 -> 101; 15 -> 102 end.