-module(internal@metric@gauge). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([new/1, insert_record/3, delete_record/2, print/2]). -export_type([gauge/0]). -type gauge() :: any(). -file("/git/Themis/src/internal/metric/gauge.gleam", 10). -spec new(binary()) -> internal@metric:metric(gauge(), internal@prometheus:number_()). new(Description) -> {metric, Description, maps:new()}. -file("/git/Themis/src/internal/metric/gauge.gleam", 14). -spec insert_record( internal@metric:metric(gauge(), internal@prometheus:number_()), internal@label:label_set(), internal@prometheus:number_() ) -> internal@metric:metric(gauge(), internal@prometheus:number_()). insert_record(To, Labels, Value) -> erlang:setelement( 3, To, gleam@dict:insert(erlang:element(3, To), Labels, Value) ). -file("/git/Themis/src/internal/metric/gauge.gleam", 22). -spec delete_record( internal@metric:metric(gauge(), internal@prometheus:number_()), internal@label:label_set() ) -> internal@metric:metric(gauge(), internal@prometheus:number_()). delete_record(From, Labels) -> erlang:setelement( 3, From, gleam@dict:delete(erlang:element(3, From), Labels) ). -file("/git/Themis/src/internal/metric/gauge.gleam", 29). -spec print( internal@metric:metric(gauge(), internal@prometheus:number_()), internal@metric:metric_name() ) -> binary(). print(Metric, Name) -> Name@1 = internal@metric:name_to_string(Name), Help = <<<<<<"HELP "/utf8, Name@1/binary>>/binary, " "/utf8>>/binary, (erlang:element(2, Metric))/binary>>, Type_ = <<<<"TYPE "/utf8, Name@1/binary>>/binary, " gauge"/utf8>>, _pipe = (gleam@dict:fold( erlang:element(3, Metric), [<<<<<>/binary, Type_/binary>>/binary, "\n"/utf8>>], fun(Current, Labels, Value) -> [<<<<<<<>/binary, " "/utf8>>/binary, (internal@prometheus:print(Value))/binary>>/binary, "\n"/utf8>> | Current] end )), _pipe@1 = lists:reverse(_pipe), _pipe@2 = gleam_stdlib:identity(_pipe@1), unicode:characters_to_binary(_pipe@2).