-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.