-module(utils). -compile([no_auto_import, nowarn_unused_vars]). -export([attempt/3, replace_with_regex/3, generate_regex/1]). -spec attempt( {ok, HER} | {error, any()}, binary(), fun((HER) -> {ok, HEV} | {error, binary()}) ) -> {ok, HEV} | {error, binary()}. attempt(Result, Default_error, Fun) -> gleam@result:'try'( begin _pipe = Result, gleam@result:replace_error(_pipe, Default_error) end, Fun ). -spec replace_with_regex(binary(), gleam@regex:regex(), binary()) -> binary(). replace_with_regex(String, Pattern, Substitute) -> _pipe = String, _pipe@1 = gleam@string_builder:from_string(_pipe), _pipe@2 = erlang_helpers:regex_replace( _pipe@1, Pattern, gleam@string_builder:from_string(Substitute) ), gleam@string_builder:to_string(_pipe@2). -spec generate_regex(binary()) -> {ok, gleam@regex:regex()} | {error, binary()}. generate_regex(Pattern) -> Re = gleam@regex:from_string(Pattern), case Re of {ok, Regex} -> {ok, Regex}; {error, {compile_error, Error, _}} -> {error, Error} end.