Current section
Files
Jump to
Current section
Files
src/blah@en@string.erl
-module(blah@en@string).
-compile(no_auto_import).
-export([alpha/1, lower_alpha/1, upper_alpha/1, numeric/1, alphanumeric/1, with_pattern/1]).
-spec alpha(integer()) -> binary().
alpha(Length) ->
alpha_internal(gleam@string_builder:new(), Length).
-spec lower_alpha(integer()) -> binary().
lower_alpha(Length) ->
lower_internal(gleam@string_builder:new(), Length).
-spec upper_alpha(integer()) -> binary().
upper_alpha(Length) ->
upper_internal(gleam@string_builder:new(), Length).
-spec numeric(integer()) -> binary().
numeric(Length) ->
numeric_internal(gleam@string_builder:new(), Length).
-spec alphanumeric(integer()) -> binary().
alphanumeric(Length) ->
alphanumeric_internal(gleam@string_builder:new(), Length).
-spec with_pattern(binary()) -> binary().
with_pattern(Given_pattern) ->
with_pattern_internal(gleam@string_builder:new(), Given_pattern).
-spec alpha_internal(gleam@string_builder:string_builder(), integer()) -> binary().
alpha_internal(State, Remaining) ->
case Remaining =:= 0 of
true ->
gleam@string_builder:to_string(State);
false ->
{ok, Letter@1} = case blah@utils:get_random_item(
[<<"A"/utf8>>,
<<"B"/utf8>>,
<<"C"/utf8>>,
<<"D"/utf8>>,
<<"E"/utf8>>,
<<"F"/utf8>>,
<<"G"/utf8>>,
<<"H"/utf8>>,
<<"I"/utf8>>,
<<"J"/utf8>>,
<<"K"/utf8>>,
<<"L"/utf8>>,
<<"M"/utf8>>,
<<"N"/utf8>>,
<<"O"/utf8>>,
<<"P"/utf8>>,
<<"Q"/utf8>>,
<<"R"/utf8>>,
<<"S"/utf8>>,
<<"T"/utf8>>,
<<"U"/utf8>>,
<<"V"/utf8>>,
<<"W"/utf8>>,
<<"X"/utf8>>,
<<"Y"/utf8>>,
<<"Z"/utf8>>,
<<"a"/utf8>>,
<<"b"/utf8>>,
<<"c"/utf8>>,
<<"d"/utf8>>,
<<"e"/utf8>>,
<<"f"/utf8>>,
<<"g"/utf8>>,
<<"h"/utf8>>,
<<"i"/utf8>>,
<<"j"/utf8>>,
<<"k"/utf8>>,
<<"l"/utf8>>,
<<"m"/utf8>>,
<<"n"/utf8>>,
<<"o"/utf8>>,
<<"p"/utf8>>,
<<"q"/utf8>>,
<<"r"/utf8>>,
<<"s"/utf8>>,
<<"t"/utf8>>,
<<"u"/utf8>>,
<<"v"/utf8>>,
<<"w"/utf8>>,
<<"x"/utf8>>,
<<"y"/utf8>>,
<<"z"/utf8>>]
) of
{ok, Letter} -> {ok, Letter};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"blah/en/string"/utf8>>,
function => <<"alpha_internal"/utf8>>,
line => 78})
end,
alpha_internal(
gleam@string_builder:append(State, Letter@1),
Remaining
- 1
)
end.
-spec lower_internal(gleam@string_builder:string_builder(), integer()) -> binary().
lower_internal(State, Remaining) ->
case Remaining =:= 0 of
true ->
gleam@string_builder:to_string(State);
false ->
{ok, Letter@1} = case blah@utils:get_random_item(
[<<"a"/utf8>>,
<<"b"/utf8>>,
<<"c"/utf8>>,
<<"d"/utf8>>,
<<"e"/utf8>>,
<<"f"/utf8>>,
<<"g"/utf8>>,
<<"h"/utf8>>,
<<"i"/utf8>>,
<<"j"/utf8>>,
<<"k"/utf8>>,
<<"l"/utf8>>,
<<"m"/utf8>>,
<<"n"/utf8>>,
<<"o"/utf8>>,
<<"p"/utf8>>,
<<"q"/utf8>>,
<<"r"/utf8>>,
<<"s"/utf8>>,
<<"t"/utf8>>,
<<"u"/utf8>>,
<<"v"/utf8>>,
<<"w"/utf8>>,
<<"x"/utf8>>,
<<"y"/utf8>>,
<<"z"/utf8>>]
) of
{ok, Letter} -> {ok, Letter};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"blah/en/string"/utf8>>,
function => <<"lower_internal"/utf8>>,
line => 89})
end,
lower_internal(
gleam@string_builder:append(State, Letter@1),
Remaining
- 1
)
end.
-spec upper_internal(gleam@string_builder:string_builder(), integer()) -> binary().
upper_internal(State, Remaining) ->
case Remaining =:= 0 of
true ->
gleam@string_builder:to_string(State);
false ->
{ok, Letter@1} = case blah@utils:get_random_item(
[<<"A"/utf8>>,
<<"B"/utf8>>,
<<"C"/utf8>>,
<<"D"/utf8>>,
<<"E"/utf8>>,
<<"F"/utf8>>,
<<"G"/utf8>>,
<<"H"/utf8>>,
<<"I"/utf8>>,
<<"J"/utf8>>,
<<"K"/utf8>>,
<<"L"/utf8>>,
<<"M"/utf8>>,
<<"N"/utf8>>,
<<"O"/utf8>>,
<<"P"/utf8>>,
<<"Q"/utf8>>,
<<"R"/utf8>>,
<<"S"/utf8>>,
<<"T"/utf8>>,
<<"U"/utf8>>,
<<"V"/utf8>>,
<<"W"/utf8>>,
<<"X"/utf8>>,
<<"Y"/utf8>>,
<<"Z"/utf8>>]
) of
{ok, Letter} -> {ok, Letter};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"blah/en/string"/utf8>>,
function => <<"upper_internal"/utf8>>,
line => 100})
end,
upper_internal(
gleam@string_builder:append(State, Letter@1),
Remaining
- 1
)
end.
-spec numeric_internal(gleam@string_builder:string_builder(), integer()) -> binary().
numeric_internal(State, Remaining) ->
case Remaining =:= 0 of
true ->
gleam@string_builder:to_string(State);
false ->
{ok, Digit@1} = case blah@utils:get_random_item(
[<<"0"/utf8>>,
<<"1"/utf8>>,
<<"2"/utf8>>,
<<"3"/utf8>>,
<<"4"/utf8>>,
<<"5"/utf8>>,
<<"6"/utf8>>,
<<"7"/utf8>>,
<<"8"/utf8>>,
<<"9"/utf8>>]
) of
{ok, Digit} -> {ok, Digit};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"blah/en/string"/utf8>>,
function => <<"numeric_internal"/utf8>>,
line => 111})
end,
numeric_internal(
gleam@string_builder:append(State, Digit@1),
Remaining
- 1
)
end.
-spec alphanumeric_internal(gleam@string_builder:string_builder(), integer()) -> binary().
alphanumeric_internal(State, Remaining) ->
case Remaining =:= 0 of
true ->
gleam@string_builder:to_string(State);
false ->
{ok, Character@1} = case blah@utils:get_random_item(
[<<"A"/utf8>>,
<<"B"/utf8>>,
<<"C"/utf8>>,
<<"D"/utf8>>,
<<"E"/utf8>>,
<<"F"/utf8>>,
<<"G"/utf8>>,
<<"H"/utf8>>,
<<"I"/utf8>>,
<<"J"/utf8>>,
<<"K"/utf8>>,
<<"L"/utf8>>,
<<"M"/utf8>>,
<<"N"/utf8>>,
<<"O"/utf8>>,
<<"P"/utf8>>,
<<"Q"/utf8>>,
<<"R"/utf8>>,
<<"S"/utf8>>,
<<"T"/utf8>>,
<<"U"/utf8>>,
<<"V"/utf8>>,
<<"W"/utf8>>,
<<"X"/utf8>>,
<<"Y"/utf8>>,
<<"Z"/utf8>>,
<<"a"/utf8>>,
<<"b"/utf8>>,
<<"c"/utf8>>,
<<"d"/utf8>>,
<<"e"/utf8>>,
<<"f"/utf8>>,
<<"g"/utf8>>,
<<"h"/utf8>>,
<<"i"/utf8>>,
<<"j"/utf8>>,
<<"k"/utf8>>,
<<"l"/utf8>>,
<<"m"/utf8>>,
<<"n"/utf8>>,
<<"o"/utf8>>,
<<"p"/utf8>>,
<<"q"/utf8>>,
<<"r"/utf8>>,
<<"s"/utf8>>,
<<"t"/utf8>>,
<<"u"/utf8>>,
<<"v"/utf8>>,
<<"w"/utf8>>,
<<"x"/utf8>>,
<<"y"/utf8>>,
<<"z"/utf8>>,
<<"0"/utf8>>,
<<"1"/utf8>>,
<<"2"/utf8>>,
<<"3"/utf8>>,
<<"4"/utf8>>,
<<"5"/utf8>>,
<<"6"/utf8>>,
<<"7"/utf8>>,
<<"8"/utf8>>,
<<"9"/utf8>>]
) of
{ok, Character} -> {ok, Character};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"blah/en/string"/utf8>>,
function => <<"alphanumeric_internal"/utf8>>,
line => 122})
end,
alphanumeric_internal(
gleam@string_builder:append(State, Character@1),
Remaining
- 1
)
end.
-spec with_pattern_internal(gleam@string_builder:string_builder(), binary()) -> binary().
with_pattern_internal(State, Given_pattern) ->
case gleam@string:first(Given_pattern) of
{ok, <<"%"/utf8>>} ->
{ok, To_append@1} = case case gleam@string:slice(
Given_pattern,
0,
2
) of
<<"%d"/utf8>> ->
blah@utils:get_random_item(
[<<"0"/utf8>>,
<<"1"/utf8>>,
<<"2"/utf8>>,
<<"3"/utf8>>,
<<"4"/utf8>>,
<<"5"/utf8>>,
<<"6"/utf8>>,
<<"7"/utf8>>,
<<"8"/utf8>>,
<<"9"/utf8>>]
);
<<"%w"/utf8>> ->
blah@utils:get_random_item(
[<<"A"/utf8>>,
<<"B"/utf8>>,
<<"C"/utf8>>,
<<"D"/utf8>>,
<<"E"/utf8>>,
<<"F"/utf8>>,
<<"G"/utf8>>,
<<"H"/utf8>>,
<<"I"/utf8>>,
<<"J"/utf8>>,
<<"K"/utf8>>,
<<"L"/utf8>>,
<<"M"/utf8>>,
<<"N"/utf8>>,
<<"O"/utf8>>,
<<"P"/utf8>>,
<<"Q"/utf8>>,
<<"R"/utf8>>,
<<"S"/utf8>>,
<<"T"/utf8>>,
<<"U"/utf8>>,
<<"V"/utf8>>,
<<"W"/utf8>>,
<<"X"/utf8>>,
<<"Y"/utf8>>,
<<"Z"/utf8>>,
<<"a"/utf8>>,
<<"b"/utf8>>,
<<"c"/utf8>>,
<<"d"/utf8>>,
<<"e"/utf8>>,
<<"f"/utf8>>,
<<"g"/utf8>>,
<<"h"/utf8>>,
<<"i"/utf8>>,
<<"j"/utf8>>,
<<"k"/utf8>>,
<<"l"/utf8>>,
<<"m"/utf8>>,
<<"n"/utf8>>,
<<"o"/utf8>>,
<<"p"/utf8>>,
<<"q"/utf8>>,
<<"r"/utf8>>,
<<"s"/utf8>>,
<<"t"/utf8>>,
<<"u"/utf8>>,
<<"v"/utf8>>,
<<"w"/utf8>>,
<<"x"/utf8>>,
<<"y"/utf8>>,
<<"z"/utf8>>]
);
<<"%c"/utf8>> ->
blah@utils:get_random_item(
[<<"A"/utf8>>,
<<"B"/utf8>>,
<<"C"/utf8>>,
<<"D"/utf8>>,
<<"E"/utf8>>,
<<"F"/utf8>>,
<<"G"/utf8>>,
<<"H"/utf8>>,
<<"I"/utf8>>,
<<"J"/utf8>>,
<<"K"/utf8>>,
<<"L"/utf8>>,
<<"M"/utf8>>,
<<"N"/utf8>>,
<<"O"/utf8>>,
<<"P"/utf8>>,
<<"Q"/utf8>>,
<<"R"/utf8>>,
<<"S"/utf8>>,
<<"T"/utf8>>,
<<"U"/utf8>>,
<<"V"/utf8>>,
<<"W"/utf8>>,
<<"X"/utf8>>,
<<"Y"/utf8>>,
<<"Z"/utf8>>,
<<"a"/utf8>>,
<<"b"/utf8>>,
<<"c"/utf8>>,
<<"d"/utf8>>,
<<"e"/utf8>>,
<<"f"/utf8>>,
<<"g"/utf8>>,
<<"h"/utf8>>,
<<"i"/utf8>>,
<<"j"/utf8>>,
<<"k"/utf8>>,
<<"l"/utf8>>,
<<"m"/utf8>>,
<<"n"/utf8>>,
<<"o"/utf8>>,
<<"p"/utf8>>,
<<"q"/utf8>>,
<<"r"/utf8>>,
<<"s"/utf8>>,
<<"t"/utf8>>,
<<"u"/utf8>>,
<<"v"/utf8>>,
<<"w"/utf8>>,
<<"x"/utf8>>,
<<"y"/utf8>>,
<<"z"/utf8>>,
<<"0"/utf8>>,
<<"1"/utf8>>,
<<"2"/utf8>>,
<<"3"/utf8>>,
<<"4"/utf8>>,
<<"5"/utf8>>,
<<"6"/utf8>>,
<<"7"/utf8>>,
<<"8"/utf8>>,
<<"9"/utf8>>]
);
<<"%l"/utf8>> ->
blah@utils:get_random_item(
[<<"a"/utf8>>,
<<"b"/utf8>>,
<<"c"/utf8>>,
<<"d"/utf8>>,
<<"e"/utf8>>,
<<"f"/utf8>>,
<<"g"/utf8>>,
<<"h"/utf8>>,
<<"i"/utf8>>,
<<"j"/utf8>>,
<<"k"/utf8>>,
<<"l"/utf8>>,
<<"m"/utf8>>,
<<"n"/utf8>>,
<<"o"/utf8>>,
<<"p"/utf8>>,
<<"q"/utf8>>,
<<"r"/utf8>>,
<<"s"/utf8>>,
<<"t"/utf8>>,
<<"u"/utf8>>,
<<"v"/utf8>>,
<<"w"/utf8>>,
<<"x"/utf8>>,
<<"y"/utf8>>,
<<"z"/utf8>>]
);
<<"%u"/utf8>> ->
blah@utils:get_random_item(
[<<"A"/utf8>>,
<<"B"/utf8>>,
<<"C"/utf8>>,
<<"D"/utf8>>,
<<"E"/utf8>>,
<<"F"/utf8>>,
<<"G"/utf8>>,
<<"H"/utf8>>,
<<"I"/utf8>>,
<<"J"/utf8>>,
<<"K"/utf8>>,
<<"L"/utf8>>,
<<"M"/utf8>>,
<<"N"/utf8>>,
<<"O"/utf8>>,
<<"P"/utf8>>,
<<"Q"/utf8>>,
<<"R"/utf8>>,
<<"S"/utf8>>,
<<"T"/utf8>>,
<<"U"/utf8>>,
<<"V"/utf8>>,
<<"W"/utf8>>,
<<"X"/utf8>>,
<<"Y"/utf8>>,
<<"Z"/utf8>>]
);
<<"%n"/utf8>> ->
blah@utils:get_random_item(
[<<"1"/utf8>>,
<<"2"/utf8>>,
<<"3"/utf8>>,
<<"4"/utf8>>,
<<"5"/utf8>>,
<<"6"/utf8>>,
<<"7"/utf8>>,
<<"8"/utf8>>,
<<"9"/utf8>>]
);
Characters ->
{ok, Characters}
end of
{ok, To_append} -> {ok, To_append};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"blah/en/string"/utf8>>,
function => <<"with_pattern_internal"/utf8>>,
line => 134})
end,
with_pattern_internal(
gleam@string_builder:append(State, To_append@1),
gleam@string:drop_left(Given_pattern, 2)
);
{ok, To_append@2} ->
with_pattern_internal(
gleam@string_builder:append(State, To_append@2),
gleam@string:drop_left(Given_pattern, 1)
);
{error, nil} ->
gleam@string_builder:to_string(State)
end.