Current section
Files
Jump to
Current section
Files
src/apiculture@alphabets.erl
-module(apiculture@alphabets).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/apiculture/alphabets.gleam").
-export([hex_lower/0, hex_upper/0, base32_rfc/0, base32_rfc_padding/0, base32_hex/0, base32_crockford/0, base32_z/0, base36_lower/0, base36_upper/0, base58/0, base62/0, base64/0, base64_url/0, lower/0, upper/0, numeric/0, alphanumeric_lower/0, alphanumeric_upper/0, alphanumeric_mixed/0, human_safe/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-file("src/apiculture/alphabets.gleam", 15).
?DOC(" Lowercase hexadecimal (0-9, a-f)\n").
-spec hex_lower() -> apiculture@alphabet:alphabet().
hex_lower() ->
{alphabet, <<"0123456789abcdef"/utf8>>}.
-file("src/apiculture/alphabets.gleam", 20).
?DOC(" Uppercase hexadecimal (0-9, A-F)\n").
-spec hex_upper() -> apiculture@alphabet:alphabet().
hex_upper() ->
{alphabet, <<"0123456789ABCDEF"/utf8>>}.
-file("src/apiculture/alphabets.gleam", 29).
?DOC(" RFC 4648 Base32 alphabet (A-Z, 2-7)\n").
-spec base32_rfc() -> apiculture@alphabet:alphabet().
base32_rfc() ->
{alphabet, <<"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"/utf8>>}.
-file("src/apiculture/alphabets.gleam", 34).
?DOC(" RFC 4648 Base32 alphabet with padding (not typically used for sampling)\n").
-spec base32_rfc_padding() -> apiculture@alphabet:alphabet().
base32_rfc_padding() ->
{alphabet, <<"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567="/utf8>>}.
-file("src/apiculture/alphabets.gleam", 39).
?DOC(" Base32hex alphabet (0-9, A-V)\n").
-spec base32_hex() -> apiculture@alphabet:alphabet().
base32_hex() ->
{alphabet, <<"0123456789ABCDEFGHIJKLMNOPQRSTUV"/utf8>>}.
-file("src/apiculture/alphabets.gleam", 45).
?DOC(
" Crockford's Base32 alphabet\n"
" Designed to be human-safe, excludes I, L, O, U\n"
).
-spec base32_crockford() -> apiculture@alphabet:alphabet().
base32_crockford() ->
{alphabet, <<"0123456789ABCDEFGHJKMNPQRSTVWXYZ"/utf8>>}.
-file("src/apiculture/alphabets.gleam", 51).
?DOC(
" z-base-32 alphabet (human-friendly)\n"
" Order is designed for easy memorization and transcription\n"
).
-spec base32_z() -> apiculture@alphabet:alphabet().
base32_z() ->
{alphabet, <<"ybndrfg8ejkmcpqxot1uwisza345h769"/utf8>>}.
-file("src/apiculture/alphabets.gleam", 60).
?DOC(" Lowercase Base36 (0-9, a-z)\n").
-spec base36_lower() -> apiculture@alphabet:alphabet().
base36_lower() ->
{alphabet, <<"0123456789abcdefghijklmnopqrstuvwxyz"/utf8>>}.
-file("src/apiculture/alphabets.gleam", 65).
?DOC(" Uppercase Base36 (0-9, A-Z)\n").
-spec base36_upper() -> apiculture@alphabet:alphabet().
base36_upper() ->
{alphabet, <<"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"/utf8>>}.
-file("src/apiculture/alphabets.gleam", 75).
?DOC(
" Bitcoin-style Base58 alphabet\n"
" Excludes 0, O, I, l for visual clarity\n"
).
-spec base58() -> apiculture@alphabet:alphabet().
base58() ->
{alphabet,
<<"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"/utf8>>}.
-file("src/apiculture/alphabets.gleam", 86).
?DOC(" Standard Base62 (0-9, A-Z, a-z)\n").
-spec base62() -> apiculture@alphabet:alphabet().
base62() ->
{alphabet,
<<"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"/utf8>>}.
-file("src/apiculture/alphabets.gleam", 97).
?DOC(" Standard Base64 character repertoire\n").
-spec base64() -> apiculture@alphabet:alphabet().
base64() ->
{alphabet,
<<"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"/utf8>>}.
-file("src/apiculture/alphabets.gleam", 104).
?DOC(" Base64URL variant (URL-safe, replaces +/ with -_)\n").
-spec base64_url() -> apiculture@alphabet:alphabet().
base64_url() ->
{alphabet,
<<"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"/utf8>>}.
-file("src/apiculture/alphabets.gleam", 115).
?DOC(" Lowercase letters only (a-z)\n").
-spec lower() -> apiculture@alphabet:alphabet().
lower() ->
{alphabet, <<"abcdefghijklmnopqrstuvwxyz"/utf8>>}.
-file("src/apiculture/alphabets.gleam", 120).
?DOC(" Uppercase letters only (A-Z)\n").
-spec upper() -> apiculture@alphabet:alphabet().
upper() ->
{alphabet, <<"ABCDEFGHIJKLMNOPQRSTUVWXYZ"/utf8>>}.
-file("src/apiculture/alphabets.gleam", 129).
?DOC(" Numeric characters only (0-9)\n").
-spec numeric() -> apiculture@alphabet:alphabet().
numeric() ->
{alphabet, <<"0123456789"/utf8>>}.
-file("src/apiculture/alphabets.gleam", 138).
?DOC(" Lowercase alphanumeric (0-9, a-z)\n").
-spec alphanumeric_lower() -> apiculture@alphabet:alphabet().
alphanumeric_lower() ->
{alphabet, <<"0123456789abcdefghijklmnopqrstuvwxyz"/utf8>>}.
-file("src/apiculture/alphabets.gleam", 143).
?DOC(" Uppercase alphanumeric (0-9, A-Z)\n").
-spec alphanumeric_upper() -> apiculture@alphabet:alphabet().
alphanumeric_upper() ->
{alphabet, <<"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"/utf8>>}.
-file("src/apiculture/alphabets.gleam", 148).
?DOC(" Mixed-case alphanumeric (0-9, A-Z, a-z)\n").
-spec alphanumeric_mixed() -> apiculture@alphabet:alphabet().
alphanumeric_mixed() ->
{alphabet,
<<"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"/utf8>>}.
-file("src/apiculture/alphabets.gleam", 161).
?DOC(
" Human-safe alphabet excluding visually ambiguous characters\n"
" Excludes: 0, O, 1, I, l, B, 8, S (can be confused)\n"
" Uses: 2-9, A-H, J-N, P-R, T-Z, a-k, m-n, p-t, v-z\n"
).
-spec human_safe() -> apiculture@alphabet:alphabet().
human_safe() ->
{alphabet, <<"23456789ABCDEFGHJKMNPQRTVWXYZabcdefghjkmnpqrtvwxyz"/utf8>>}.