Current section

Files

Jump to
themis src internal@metric.erl
Raw

src/internal@metric.erl

-module(internal@metric).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([new_name/1, name_to_string/1]).
-export_type([metric_error/0, metric_name/0, metric/2]).
-type metric_error() :: invalid_metric_name.
-opaque metric_name() :: {metric_name, binary()}.
-type metric(GLZ, GMA) :: {metric,
binary(),
gleam@dict:dict(internal@label:label_set(), GMA)} |
{gleam_phantom, GLZ}.
-file("/git/Themis/src/internal/metric.gleam", 25).
-spec new_name(binary()) -> {ok, metric_name()} | {error, metric_error()}.
new_name(From) ->
case internal@prometheus:is_valid_name(From) of
false ->
{error, invalid_metric_name};
true ->
{ok, {metric_name, From}}
end.
-file("/git/Themis/src/internal/metric.gleam", 32).
-spec name_to_string(metric_name()) -> binary().
name_to_string(From) ->
erlang:element(2, From).