%% Automatically generated, do not edit %% Generated by gpb_compile version 3.21.2 on {{2016,6,29},{2,55,9}} -module(prometheus_model). -export([encode_msg/1, encode_msg/2]). -export([decode_msg/2]). -export([merge_msgs/2]). -export([verify_msg/1]). -export([get_msg_defs/0]). -export([get_msg_names/0]). -export([get_enum_names/0]). -export([find_msg_def/1, fetch_msg_def/1]). -export([find_enum_def/1, fetch_enum_def/1]). -export([enum_symbol_by_value/2, enum_value_by_symbol/2]). -export([enum_symbol_by_value_MetricType/1, enum_value_by_symbol_MetricType/1]). -export([get_service_names/0]). -export([get_service_def/1]). -export([get_rpc_names/1]). -export([find_rpc_def/2, fetch_rpc_def/2]). -export([get_package_name/0]). -export([gpb_version_as_string/0, gpb_version_as_list/0]). -include("prometheus_model.hrl"). -include("gpb.hrl"). %% enumerated types -type 'MetricType'() :: 'COUNTER' | 'GAUGE' | 'SUMMARY' | 'UNTYPED' | 'HISTOGRAM'. -export_type(['MetricType'/0]). %% message types -type 'Bucket'() :: #'Bucket'{}. -type 'Histogram'() :: #'Histogram'{}. -type 'Untyped'() :: #'Untyped'{}. -type 'Quantile'() :: #'Quantile'{}. -type 'Summary'() :: #'Summary'{}. -type 'Counter'() :: #'Counter'{}. -type 'Gauge'() :: #'Gauge'{}. -type 'LabelPair'() :: #'LabelPair'{}. -type 'Metric'() :: #'Metric'{}. -type 'MetricFamily'() :: #'MetricFamily'{}. -export_type(['Bucket'/0, 'Histogram'/0, 'Untyped'/0, 'Quantile'/0, 'Summary'/0, 'Counter'/0, 'Gauge'/0, 'LabelPair'/0, 'Metric'/0, 'MetricFamily'/0]). encode_msg(Msg) -> encode_msg(Msg, []). encode_msg(Msg, Opts) -> case proplists:get_bool(verify, Opts) of true -> verify_msg(Msg); false -> ok end, case Msg of #'Bucket'{} -> e_msg_Bucket(Msg); #'Histogram'{} -> e_msg_Histogram(Msg); #'Untyped'{} -> e_msg_Untyped(Msg); #'Quantile'{} -> e_msg_Quantile(Msg); #'Summary'{} -> e_msg_Summary(Msg); #'Counter'{} -> e_msg_Counter(Msg); #'Gauge'{} -> e_msg_Gauge(Msg); #'LabelPair'{} -> e_msg_LabelPair(Msg); #'Metric'{} -> e_msg_Metric(Msg); #'MetricFamily'{} -> e_msg_MetricFamily(Msg) end. e_msg_Bucket(Msg) -> e_msg_Bucket(Msg, <<>>). e_msg_Bucket(#'Bucket'{cumulative_count = F1, upper_bound = F2}, Bin) -> B1 = if F1 == undefined -> Bin; true -> e_varint(F1, <>) end, if F2 == undefined -> B1; true -> e_type_double(F2, <>) end. e_msg_Histogram(Msg) -> e_msg_Histogram(Msg, <<>>). e_msg_Histogram(#'Histogram'{sample_count = F1, sample_sum = F2, bucket = F3}, Bin) -> B1 = if F1 == undefined -> Bin; true -> e_varint(F1, <>) end, B2 = if F2 == undefined -> B1; true -> e_type_double(F2, <>) end, begin TrF3 = id(F3), if TrF3 == [] -> B2; true -> e_field_Histogram_bucket(TrF3, B2) end end. e_msg_Untyped(Msg) -> e_msg_Untyped(Msg, <<>>). e_msg_Untyped(#'Untyped'{value = F1}, Bin) -> if F1 == undefined -> Bin; true -> e_type_double(F1, <>) end. e_msg_Quantile(Msg) -> e_msg_Quantile(Msg, <<>>). e_msg_Quantile(#'Quantile'{quantile = F1, value = F2}, Bin) -> B1 = if F1 == undefined -> Bin; true -> e_type_double(F1, <>) end, if F2 == undefined -> B1; true -> e_type_double(F2, <>) end. e_msg_Summary(Msg) -> e_msg_Summary(Msg, <<>>). e_msg_Summary(#'Summary'{sample_count = F1, sample_sum = F2, quantile = F3}, Bin) -> B1 = if F1 == undefined -> Bin; true -> e_varint(F1, <>) end, B2 = if F2 == undefined -> B1; true -> e_type_double(F2, <>) end, begin TrF3 = id(F3), if TrF3 == [] -> B2; true -> e_field_Summary_quantile(TrF3, B2) end end. e_msg_Counter(Msg) -> e_msg_Counter(Msg, <<>>). e_msg_Counter(#'Counter'{value = F1}, Bin) -> if F1 == undefined -> Bin; true -> e_type_double(F1, <>) end. e_msg_Gauge(Msg) -> e_msg_Gauge(Msg, <<>>). e_msg_Gauge(#'Gauge'{value = F1}, Bin) -> if F1 == undefined -> Bin; true -> e_type_double(F1, <>) end. e_msg_LabelPair(Msg) -> e_msg_LabelPair(Msg, <<>>). e_msg_LabelPair(#'LabelPair'{name = F1, value = F2}, Bin) -> B1 = if F1 == undefined -> Bin; true -> e_type_string(F1, <>) end, if F2 == undefined -> B1; true -> e_type_string(F2, <>) end. e_msg_Metric(Msg) -> e_msg_Metric(Msg, <<>>). e_msg_Metric(#'Metric'{label = F1, gauge = F2, counter = F3, summary = F4, untyped = F5, histogram = F6, timestamp_ms = F7}, Bin) -> B1 = begin TrF1 = id(F1), if TrF1 == [] -> Bin; true -> e_field_Metric_label(TrF1, Bin) end end, B2 = if F2 == undefined -> B1; true -> e_mfield_Metric_gauge(F2, <>) end, B3 = if F3 == undefined -> B2; true -> e_mfield_Metric_counter(F3, <>) end, B4 = if F4 == undefined -> B3; true -> e_mfield_Metric_summary(F4, <>) end, B5 = if F5 == undefined -> B4; true -> e_mfield_Metric_untyped(F5, <>) end, B6 = if F6 == undefined -> B5; true -> e_mfield_Metric_histogram(F6, <>) end, if F7 == undefined -> B6; true -> e_type_int64(F7, <>) end. e_msg_MetricFamily(Msg) -> e_msg_MetricFamily(Msg, <<>>). e_msg_MetricFamily(#'MetricFamily'{name = F1, help = F2, type = F3, metric = F4}, Bin) -> B1 = if F1 == undefined -> Bin; true -> e_type_string(F1, <>) end, B2 = if F2 == undefined -> B1; true -> e_type_string(F2, <>) end, B3 = if F3 == undefined -> B2; true -> e_enum_MetricType(F3, <>) end, begin TrF4 = id(F4), if TrF4 == [] -> B3; true -> e_field_MetricFamily_metric(TrF4, B3) end end. e_mfield_Histogram_bucket(Msg, Bin) -> SubBin = e_msg_Bucket(Msg, <<>>), Bin2 = e_varint(byte_size(SubBin), Bin), <>. e_field_Histogram_bucket([Elem | Rest], Bin) -> Bin2 = <>, Bin3 = e_mfield_Histogram_bucket(id(Elem), Bin2), e_field_Histogram_bucket(Rest, Bin3); e_field_Histogram_bucket([], Bin) -> Bin. e_mfield_Summary_quantile(Msg, Bin) -> SubBin = e_msg_Quantile(Msg, <<>>), Bin2 = e_varint(byte_size(SubBin), Bin), <>. e_field_Summary_quantile([Elem | Rest], Bin) -> Bin2 = <>, Bin3 = e_mfield_Summary_quantile(id(Elem), Bin2), e_field_Summary_quantile(Rest, Bin3); e_field_Summary_quantile([], Bin) -> Bin. e_mfield_Metric_label(Msg, Bin) -> SubBin = e_msg_LabelPair(Msg, <<>>), Bin2 = e_varint(byte_size(SubBin), Bin), <>. e_field_Metric_label([Elem | Rest], Bin) -> Bin2 = <>, Bin3 = e_mfield_Metric_label(id(Elem), Bin2), e_field_Metric_label(Rest, Bin3); e_field_Metric_label([], Bin) -> Bin. e_mfield_Metric_gauge(Msg, Bin) -> SubBin = e_msg_Gauge(Msg, <<>>), Bin2 = e_varint(byte_size(SubBin), Bin), <>. e_mfield_Metric_counter(Msg, Bin) -> SubBin = e_msg_Counter(Msg, <<>>), Bin2 = e_varint(byte_size(SubBin), Bin), <>. e_mfield_Metric_summary(Msg, Bin) -> SubBin = e_msg_Summary(Msg, <<>>), Bin2 = e_varint(byte_size(SubBin), Bin), <>. e_mfield_Metric_untyped(Msg, Bin) -> SubBin = e_msg_Untyped(Msg, <<>>), Bin2 = e_varint(byte_size(SubBin), Bin), <>. e_mfield_Metric_histogram(Msg, Bin) -> SubBin = e_msg_Histogram(Msg, <<>>), Bin2 = e_varint(byte_size(SubBin), Bin), <>. e_mfield_MetricFamily_metric(Msg, Bin) -> SubBin = e_msg_Metric(Msg, <<>>), Bin2 = e_varint(byte_size(SubBin), Bin), <>. e_field_MetricFamily_metric([Elem | Rest], Bin) -> Bin2 = <>, Bin3 = e_mfield_MetricFamily_metric(id(Elem), Bin2), e_field_MetricFamily_metric(Rest, Bin3); e_field_MetricFamily_metric([], Bin) -> Bin. e_enum_MetricType('COUNTER', Bin) -> <>; e_enum_MetricType('GAUGE', Bin) -> <>; e_enum_MetricType('SUMMARY', Bin) -> <>; e_enum_MetricType('UNTYPED', Bin) -> <>; e_enum_MetricType('HISTOGRAM', Bin) -> <>. e_type_int64(Value, Bin) when 0 =< Value, Value =< 127 -> <>; e_type_int64(Value, Bin) -> <> = <>, e_varint(N, Bin). e_type_string(S, Bin) -> Utf8 = unicode:characters_to_binary(S), Bin2 = e_varint(byte_size(Utf8), Bin), <>. e_type_double('+Inf', Bin) -> <>; e_type_double(Value, Bin) -> <>. e_varint(N, Bin) when N =< 127 -> <>; e_varint(N, Bin) -> Bin2 = <>, e_varint(N bsr 7, Bin2). decode_msg(Bin, MsgName) when is_binary(Bin) -> case MsgName of 'Bucket' -> d_msg_Bucket(Bin); 'Histogram' -> d_msg_Histogram(Bin); 'Untyped' -> d_msg_Untyped(Bin); 'Quantile' -> d_msg_Quantile(Bin); 'Summary' -> d_msg_Summary(Bin); 'Counter' -> d_msg_Counter(Bin); 'Gauge' -> d_msg_Gauge(Bin); 'LabelPair' -> d_msg_LabelPair(Bin); 'Metric' -> d_msg_Metric(Bin); 'MetricFamily' -> d_msg_MetricFamily(Bin) end. d_msg_Bucket(Bin) -> dfp_read_field_def_Bucket(Bin, 0, 0, id(undefined), id(undefined)). dfp_read_field_def_Bucket(<<8, Rest/binary>>, Z1, Z2, F1, F2) -> d_field_Bucket_cumulative_count(Rest, Z1, Z2, F1, F2); dfp_read_field_def_Bucket(<<17, Rest/binary>>, Z1, Z2, F1, F2) -> d_field_Bucket_upper_bound(Rest, Z1, Z2, F1, F2); dfp_read_field_def_Bucket(<<>>, 0, 0, F1, F2) -> #'Bucket'{cumulative_count = F1, upper_bound = F2}; dfp_read_field_def_Bucket(Other, Z1, Z2, F1, F2) -> dg_read_field_def_Bucket(Other, Z1, Z2, F1, F2). dg_read_field_def_Bucket(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2) when N < 32 - 7 -> dg_read_field_def_Bucket(Rest, N + 7, X bsl N + Acc, F1, F2); dg_read_field_def_Bucket(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2) -> Key = X bsl N + Acc, case Key of 8 -> d_field_Bucket_cumulative_count(Rest, 0, 0, F1, F2); 17 -> d_field_Bucket_upper_bound(Rest, 0, 0, F1, F2); _ -> case Key band 7 of 0 -> skip_varint_Bucket(Rest, 0, 0, F1, F2); 1 -> skip_64_Bucket(Rest, 0, 0, F1, F2); 2 -> skip_length_delimited_Bucket(Rest, 0, 0, F1, F2); 5 -> skip_32_Bucket(Rest, 0, 0, F1, F2) end end; dg_read_field_def_Bucket(<<>>, 0, 0, F1, F2) -> #'Bucket'{cumulative_count = F1, upper_bound = F2}. d_field_Bucket_cumulative_count(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2) when N < 57 -> d_field_Bucket_cumulative_count(Rest, N + 7, X bsl N + Acc, F1, F2); d_field_Bucket_cumulative_count(<<0:1, X:7, Rest/binary>>, N, Acc, _, F2) -> NewFValue = X bsl N + Acc, dfp_read_field_def_Bucket(Rest, 0, 0, NewFValue, F2). d_field_Bucket_upper_bound(<>, Z1, Z2, F1, _) -> dfp_read_field_def_Bucket(Rest, Z1, Z2, F1, Value). skip_varint_Bucket(<<1:1, _:7, Rest/binary>>, Z1, Z2, F1, F2) -> skip_varint_Bucket(Rest, Z1, Z2, F1, F2); skip_varint_Bucket(<<0:1, _:7, Rest/binary>>, Z1, Z2, F1, F2) -> dfp_read_field_def_Bucket(Rest, Z1, Z2, F1, F2). skip_length_delimited_Bucket(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2) when N < 57 -> skip_length_delimited_Bucket(Rest, N + 7, X bsl N + Acc, F1, F2); skip_length_delimited_Bucket(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, dfp_read_field_def_Bucket(Rest2, 0, 0, F1, F2). skip_32_Bucket(<<_:32, Rest/binary>>, Z1, Z2, F1, F2) -> dfp_read_field_def_Bucket(Rest, Z1, Z2, F1, F2). skip_64_Bucket(<<_:64, Rest/binary>>, Z1, Z2, F1, F2) -> dfp_read_field_def_Bucket(Rest, Z1, Z2, F1, F2). d_msg_Histogram(Bin) -> dfp_read_field_def_Histogram(Bin, 0, 0, id(undefined), id(undefined), id([])). dfp_read_field_def_Histogram(<<8, Rest/binary>>, Z1, Z2, F1, F2, F3) -> d_field_Histogram_sample_count(Rest, Z1, Z2, F1, F2, F3); dfp_read_field_def_Histogram(<<17, Rest/binary>>, Z1, Z2, F1, F2, F3) -> d_field_Histogram_sample_sum(Rest, Z1, Z2, F1, F2, F3); dfp_read_field_def_Histogram(<<26, Rest/binary>>, Z1, Z2, F1, F2, F3) -> d_field_Histogram_bucket(Rest, Z1, Z2, F1, F2, F3); dfp_read_field_def_Histogram(<<>>, 0, 0, F1, F2, F3) -> #'Histogram'{sample_count = F1, sample_sum = F2, bucket = lists_reverse(F3)}; dfp_read_field_def_Histogram(Other, Z1, Z2, F1, F2, F3) -> dg_read_field_def_Histogram(Other, Z1, Z2, F1, F2, F3). dg_read_field_def_Histogram(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3) when N < 32 - 7 -> dg_read_field_def_Histogram(Rest, N + 7, X bsl N + Acc, F1, F2, F3); dg_read_field_def_Histogram(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3) -> Key = X bsl N + Acc, case Key of 8 -> d_field_Histogram_sample_count(Rest, 0, 0, F1, F2, F3); 17 -> d_field_Histogram_sample_sum(Rest, 0, 0, F1, F2, F3); 26 -> d_field_Histogram_bucket(Rest, 0, 0, F1, F2, F3); _ -> case Key band 7 of 0 -> skip_varint_Histogram(Rest, 0, 0, F1, F2, F3); 1 -> skip_64_Histogram(Rest, 0, 0, F1, F2, F3); 2 -> skip_length_delimited_Histogram(Rest, 0, 0, F1, F2, F3); 5 -> skip_32_Histogram(Rest, 0, 0, F1, F2, F3) end end; dg_read_field_def_Histogram(<<>>, 0, 0, F1, F2, F3) -> #'Histogram'{sample_count = F1, sample_sum = F2, bucket = lists_reverse(F3)}. d_field_Histogram_sample_count(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3) when N < 57 -> d_field_Histogram_sample_count(Rest, N + 7, X bsl N + Acc, F1, F2, F3); d_field_Histogram_sample_count(<<0:1, X:7, Rest/binary>>, N, Acc, _, F2, F3) -> NewFValue = X bsl N + Acc, dfp_read_field_def_Histogram(Rest, 0, 0, NewFValue, F2, F3). d_field_Histogram_sample_sum(<>, Z1, Z2, F1, _, F3) -> dfp_read_field_def_Histogram(Rest, Z1, Z2, F1, Value, F3). d_field_Histogram_bucket(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3) when N < 57 -> d_field_Histogram_bucket(Rest, N + 7, X bsl N + Acc, F1, F2, F3); d_field_Histogram_bucket(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3) -> Len = X bsl N + Acc, <> = Rest, NewFValue = d_msg_Bucket(Bs), dfp_read_field_def_Histogram(Rest2, 0, 0, F1, F2, cons(NewFValue, F3)). skip_varint_Histogram(<<1:1, _:7, Rest/binary>>, Z1, Z2, F1, F2, F3) -> skip_varint_Histogram(Rest, Z1, Z2, F1, F2, F3); skip_varint_Histogram(<<0:1, _:7, Rest/binary>>, Z1, Z2, F1, F2, F3) -> dfp_read_field_def_Histogram(Rest, Z1, Z2, F1, F2, F3). skip_length_delimited_Histogram(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3) when N < 57 -> skip_length_delimited_Histogram(Rest, N + 7, X bsl N + Acc, F1, F2, F3); skip_length_delimited_Histogram(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, dfp_read_field_def_Histogram(Rest2, 0, 0, F1, F2, F3). skip_32_Histogram(<<_:32, Rest/binary>>, Z1, Z2, F1, F2, F3) -> dfp_read_field_def_Histogram(Rest, Z1, Z2, F1, F2, F3). skip_64_Histogram(<<_:64, Rest/binary>>, Z1, Z2, F1, F2, F3) -> dfp_read_field_def_Histogram(Rest, Z1, Z2, F1, F2, F3). d_msg_Untyped(Bin) -> dfp_read_field_def_Untyped(Bin, 0, 0, id(undefined)). dfp_read_field_def_Untyped(<<9, Rest/binary>>, Z1, Z2, F1) -> d_field_Untyped_value(Rest, Z1, Z2, F1); dfp_read_field_def_Untyped(<<>>, 0, 0, F1) -> #'Untyped'{value = F1}; dfp_read_field_def_Untyped(Other, Z1, Z2, F1) -> dg_read_field_def_Untyped(Other, Z1, Z2, F1). dg_read_field_def_Untyped(<<1:1, X:7, Rest/binary>>, N, Acc, F1) when N < 32 - 7 -> dg_read_field_def_Untyped(Rest, N + 7, X bsl N + Acc, F1); dg_read_field_def_Untyped(<<0:1, X:7, Rest/binary>>, N, Acc, F1) -> Key = X bsl N + Acc, case Key of 9 -> d_field_Untyped_value(Rest, 0, 0, F1); _ -> case Key band 7 of 0 -> skip_varint_Untyped(Rest, 0, 0, F1); 1 -> skip_64_Untyped(Rest, 0, 0, F1); 2 -> skip_length_delimited_Untyped(Rest, 0, 0, F1); 5 -> skip_32_Untyped(Rest, 0, 0, F1) end end; dg_read_field_def_Untyped(<<>>, 0, 0, F1) -> #'Untyped'{value = F1}. d_field_Untyped_value(<>, Z1, Z2, _) -> dfp_read_field_def_Untyped(Rest, Z1, Z2, Value). skip_varint_Untyped(<<1:1, _:7, Rest/binary>>, Z1, Z2, F1) -> skip_varint_Untyped(Rest, Z1, Z2, F1); skip_varint_Untyped(<<0:1, _:7, Rest/binary>>, Z1, Z2, F1) -> dfp_read_field_def_Untyped(Rest, Z1, Z2, F1). skip_length_delimited_Untyped(<<1:1, X:7, Rest/binary>>, N, Acc, F1) when N < 57 -> skip_length_delimited_Untyped(Rest, N + 7, X bsl N + Acc, F1); skip_length_delimited_Untyped(<<0:1, X:7, Rest/binary>>, N, Acc, F1) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, dfp_read_field_def_Untyped(Rest2, 0, 0, F1). skip_32_Untyped(<<_:32, Rest/binary>>, Z1, Z2, F1) -> dfp_read_field_def_Untyped(Rest, Z1, Z2, F1). skip_64_Untyped(<<_:64, Rest/binary>>, Z1, Z2, F1) -> dfp_read_field_def_Untyped(Rest, Z1, Z2, F1). d_msg_Quantile(Bin) -> dfp_read_field_def_Quantile(Bin, 0, 0, id(undefined), id(undefined)). dfp_read_field_def_Quantile(<<9, Rest/binary>>, Z1, Z2, F1, F2) -> d_field_Quantile_quantile(Rest, Z1, Z2, F1, F2); dfp_read_field_def_Quantile(<<17, Rest/binary>>, Z1, Z2, F1, F2) -> d_field_Quantile_value(Rest, Z1, Z2, F1, F2); dfp_read_field_def_Quantile(<<>>, 0, 0, F1, F2) -> #'Quantile'{quantile = F1, value = F2}; dfp_read_field_def_Quantile(Other, Z1, Z2, F1, F2) -> dg_read_field_def_Quantile(Other, Z1, Z2, F1, F2). dg_read_field_def_Quantile(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2) when N < 32 - 7 -> dg_read_field_def_Quantile(Rest, N + 7, X bsl N + Acc, F1, F2); dg_read_field_def_Quantile(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2) -> Key = X bsl N + Acc, case Key of 9 -> d_field_Quantile_quantile(Rest, 0, 0, F1, F2); 17 -> d_field_Quantile_value(Rest, 0, 0, F1, F2); _ -> case Key band 7 of 0 -> skip_varint_Quantile(Rest, 0, 0, F1, F2); 1 -> skip_64_Quantile(Rest, 0, 0, F1, F2); 2 -> skip_length_delimited_Quantile(Rest, 0, 0, F1, F2); 5 -> skip_32_Quantile(Rest, 0, 0, F1, F2) end end; dg_read_field_def_Quantile(<<>>, 0, 0, F1, F2) -> #'Quantile'{quantile = F1, value = F2}. d_field_Quantile_quantile(<>, Z1, Z2, _, F2) -> dfp_read_field_def_Quantile(Rest, Z1, Z2, Value, F2). d_field_Quantile_value(<>, Z1, Z2, F1, _) -> dfp_read_field_def_Quantile(Rest, Z1, Z2, F1, Value). skip_varint_Quantile(<<1:1, _:7, Rest/binary>>, Z1, Z2, F1, F2) -> skip_varint_Quantile(Rest, Z1, Z2, F1, F2); skip_varint_Quantile(<<0:1, _:7, Rest/binary>>, Z1, Z2, F1, F2) -> dfp_read_field_def_Quantile(Rest, Z1, Z2, F1, F2). skip_length_delimited_Quantile(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2) when N < 57 -> skip_length_delimited_Quantile(Rest, N + 7, X bsl N + Acc, F1, F2); skip_length_delimited_Quantile(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, dfp_read_field_def_Quantile(Rest2, 0, 0, F1, F2). skip_32_Quantile(<<_:32, Rest/binary>>, Z1, Z2, F1, F2) -> dfp_read_field_def_Quantile(Rest, Z1, Z2, F1, F2). skip_64_Quantile(<<_:64, Rest/binary>>, Z1, Z2, F1, F2) -> dfp_read_field_def_Quantile(Rest, Z1, Z2, F1, F2). d_msg_Summary(Bin) -> dfp_read_field_def_Summary(Bin, 0, 0, id(undefined), id(undefined), id([])). dfp_read_field_def_Summary(<<8, Rest/binary>>, Z1, Z2, F1, F2, F3) -> d_field_Summary_sample_count(Rest, Z1, Z2, F1, F2, F3); dfp_read_field_def_Summary(<<17, Rest/binary>>, Z1, Z2, F1, F2, F3) -> d_field_Summary_sample_sum(Rest, Z1, Z2, F1, F2, F3); dfp_read_field_def_Summary(<<26, Rest/binary>>, Z1, Z2, F1, F2, F3) -> d_field_Summary_quantile(Rest, Z1, Z2, F1, F2, F3); dfp_read_field_def_Summary(<<>>, 0, 0, F1, F2, F3) -> #'Summary'{sample_count = F1, sample_sum = F2, quantile = lists_reverse(F3)}; dfp_read_field_def_Summary(Other, Z1, Z2, F1, F2, F3) -> dg_read_field_def_Summary(Other, Z1, Z2, F1, F2, F3). dg_read_field_def_Summary(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3) when N < 32 - 7 -> dg_read_field_def_Summary(Rest, N + 7, X bsl N + Acc, F1, F2, F3); dg_read_field_def_Summary(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3) -> Key = X bsl N + Acc, case Key of 8 -> d_field_Summary_sample_count(Rest, 0, 0, F1, F2, F3); 17 -> d_field_Summary_sample_sum(Rest, 0, 0, F1, F2, F3); 26 -> d_field_Summary_quantile(Rest, 0, 0, F1, F2, F3); _ -> case Key band 7 of 0 -> skip_varint_Summary(Rest, 0, 0, F1, F2, F3); 1 -> skip_64_Summary(Rest, 0, 0, F1, F2, F3); 2 -> skip_length_delimited_Summary(Rest, 0, 0, F1, F2, F3); 5 -> skip_32_Summary(Rest, 0, 0, F1, F2, F3) end end; dg_read_field_def_Summary(<<>>, 0, 0, F1, F2, F3) -> #'Summary'{sample_count = F1, sample_sum = F2, quantile = lists_reverse(F3)}. d_field_Summary_sample_count(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3) when N < 57 -> d_field_Summary_sample_count(Rest, N + 7, X bsl N + Acc, F1, F2, F3); d_field_Summary_sample_count(<<0:1, X:7, Rest/binary>>, N, Acc, _, F2, F3) -> NewFValue = X bsl N + Acc, dfp_read_field_def_Summary(Rest, 0, 0, NewFValue, F2, F3). d_field_Summary_sample_sum(<>, Z1, Z2, F1, _, F3) -> dfp_read_field_def_Summary(Rest, Z1, Z2, F1, Value, F3). d_field_Summary_quantile(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3) when N < 57 -> d_field_Summary_quantile(Rest, N + 7, X bsl N + Acc, F1, F2, F3); d_field_Summary_quantile(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3) -> Len = X bsl N + Acc, <> = Rest, NewFValue = d_msg_Quantile(Bs), dfp_read_field_def_Summary(Rest2, 0, 0, F1, F2, cons(NewFValue, F3)). skip_varint_Summary(<<1:1, _:7, Rest/binary>>, Z1, Z2, F1, F2, F3) -> skip_varint_Summary(Rest, Z1, Z2, F1, F2, F3); skip_varint_Summary(<<0:1, _:7, Rest/binary>>, Z1, Z2, F1, F2, F3) -> dfp_read_field_def_Summary(Rest, Z1, Z2, F1, F2, F3). skip_length_delimited_Summary(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3) when N < 57 -> skip_length_delimited_Summary(Rest, N + 7, X bsl N + Acc, F1, F2, F3); skip_length_delimited_Summary(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, dfp_read_field_def_Summary(Rest2, 0, 0, F1, F2, F3). skip_32_Summary(<<_:32, Rest/binary>>, Z1, Z2, F1, F2, F3) -> dfp_read_field_def_Summary(Rest, Z1, Z2, F1, F2, F3). skip_64_Summary(<<_:64, Rest/binary>>, Z1, Z2, F1, F2, F3) -> dfp_read_field_def_Summary(Rest, Z1, Z2, F1, F2, F3). d_msg_Counter(Bin) -> dfp_read_field_def_Counter(Bin, 0, 0, id(undefined)). dfp_read_field_def_Counter(<<9, Rest/binary>>, Z1, Z2, F1) -> d_field_Counter_value(Rest, Z1, Z2, F1); dfp_read_field_def_Counter(<<>>, 0, 0, F1) -> #'Counter'{value = F1}; dfp_read_field_def_Counter(Other, Z1, Z2, F1) -> dg_read_field_def_Counter(Other, Z1, Z2, F1). dg_read_field_def_Counter(<<1:1, X:7, Rest/binary>>, N, Acc, F1) when N < 32 - 7 -> dg_read_field_def_Counter(Rest, N + 7, X bsl N + Acc, F1); dg_read_field_def_Counter(<<0:1, X:7, Rest/binary>>, N, Acc, F1) -> Key = X bsl N + Acc, case Key of 9 -> d_field_Counter_value(Rest, 0, 0, F1); _ -> case Key band 7 of 0 -> skip_varint_Counter(Rest, 0, 0, F1); 1 -> skip_64_Counter(Rest, 0, 0, F1); 2 -> skip_length_delimited_Counter(Rest, 0, 0, F1); 5 -> skip_32_Counter(Rest, 0, 0, F1) end end; dg_read_field_def_Counter(<<>>, 0, 0, F1) -> #'Counter'{value = F1}. d_field_Counter_value(<>, Z1, Z2, _) -> dfp_read_field_def_Counter(Rest, Z1, Z2, Value). skip_varint_Counter(<<1:1, _:7, Rest/binary>>, Z1, Z2, F1) -> skip_varint_Counter(Rest, Z1, Z2, F1); skip_varint_Counter(<<0:1, _:7, Rest/binary>>, Z1, Z2, F1) -> dfp_read_field_def_Counter(Rest, Z1, Z2, F1). skip_length_delimited_Counter(<<1:1, X:7, Rest/binary>>, N, Acc, F1) when N < 57 -> skip_length_delimited_Counter(Rest, N + 7, X bsl N + Acc, F1); skip_length_delimited_Counter(<<0:1, X:7, Rest/binary>>, N, Acc, F1) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, dfp_read_field_def_Counter(Rest2, 0, 0, F1). skip_32_Counter(<<_:32, Rest/binary>>, Z1, Z2, F1) -> dfp_read_field_def_Counter(Rest, Z1, Z2, F1). skip_64_Counter(<<_:64, Rest/binary>>, Z1, Z2, F1) -> dfp_read_field_def_Counter(Rest, Z1, Z2, F1). d_msg_Gauge(Bin) -> dfp_read_field_def_Gauge(Bin, 0, 0, id(undefined)). dfp_read_field_def_Gauge(<<9, Rest/binary>>, Z1, Z2, F1) -> d_field_Gauge_value(Rest, Z1, Z2, F1); dfp_read_field_def_Gauge(<<>>, 0, 0, F1) -> #'Gauge'{value = F1}; dfp_read_field_def_Gauge(Other, Z1, Z2, F1) -> dg_read_field_def_Gauge(Other, Z1, Z2, F1). dg_read_field_def_Gauge(<<1:1, X:7, Rest/binary>>, N, Acc, F1) when N < 32 - 7 -> dg_read_field_def_Gauge(Rest, N + 7, X bsl N + Acc, F1); dg_read_field_def_Gauge(<<0:1, X:7, Rest/binary>>, N, Acc, F1) -> Key = X bsl N + Acc, case Key of 9 -> d_field_Gauge_value(Rest, 0, 0, F1); _ -> case Key band 7 of 0 -> skip_varint_Gauge(Rest, 0, 0, F1); 1 -> skip_64_Gauge(Rest, 0, 0, F1); 2 -> skip_length_delimited_Gauge(Rest, 0, 0, F1); 5 -> skip_32_Gauge(Rest, 0, 0, F1) end end; dg_read_field_def_Gauge(<<>>, 0, 0, F1) -> #'Gauge'{value = F1}. d_field_Gauge_value(<>, Z1, Z2, _) -> dfp_read_field_def_Gauge(Rest, Z1, Z2, Value). skip_varint_Gauge(<<1:1, _:7, Rest/binary>>, Z1, Z2, F1) -> skip_varint_Gauge(Rest, Z1, Z2, F1); skip_varint_Gauge(<<0:1, _:7, Rest/binary>>, Z1, Z2, F1) -> dfp_read_field_def_Gauge(Rest, Z1, Z2, F1). skip_length_delimited_Gauge(<<1:1, X:7, Rest/binary>>, N, Acc, F1) when N < 57 -> skip_length_delimited_Gauge(Rest, N + 7, X bsl N + Acc, F1); skip_length_delimited_Gauge(<<0:1, X:7, Rest/binary>>, N, Acc, F1) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, dfp_read_field_def_Gauge(Rest2, 0, 0, F1). skip_32_Gauge(<<_:32, Rest/binary>>, Z1, Z2, F1) -> dfp_read_field_def_Gauge(Rest, Z1, Z2, F1). skip_64_Gauge(<<_:64, Rest/binary>>, Z1, Z2, F1) -> dfp_read_field_def_Gauge(Rest, Z1, Z2, F1). d_msg_LabelPair(Bin) -> dfp_read_field_def_LabelPair(Bin, 0, 0, id(undefined), id(undefined)). dfp_read_field_def_LabelPair(<<10, Rest/binary>>, Z1, Z2, F1, F2) -> d_field_LabelPair_name(Rest, Z1, Z2, F1, F2); dfp_read_field_def_LabelPair(<<18, Rest/binary>>, Z1, Z2, F1, F2) -> d_field_LabelPair_value(Rest, Z1, Z2, F1, F2); dfp_read_field_def_LabelPair(<<>>, 0, 0, F1, F2) -> #'LabelPair'{name = F1, value = F2}; dfp_read_field_def_LabelPair(Other, Z1, Z2, F1, F2) -> dg_read_field_def_LabelPair(Other, Z1, Z2, F1, F2). dg_read_field_def_LabelPair(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2) when N < 32 - 7 -> dg_read_field_def_LabelPair(Rest, N + 7, X bsl N + Acc, F1, F2); dg_read_field_def_LabelPair(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2) -> Key = X bsl N + Acc, case Key of 10 -> d_field_LabelPair_name(Rest, 0, 0, F1, F2); 18 -> d_field_LabelPair_value(Rest, 0, 0, F1, F2); _ -> case Key band 7 of 0 -> skip_varint_LabelPair(Rest, 0, 0, F1, F2); 1 -> skip_64_LabelPair(Rest, 0, 0, F1, F2); 2 -> skip_length_delimited_LabelPair(Rest, 0, 0, F1, F2); 5 -> skip_32_LabelPair(Rest, 0, 0, F1, F2) end end; dg_read_field_def_LabelPair(<<>>, 0, 0, F1, F2) -> #'LabelPair'{name = F1, value = F2}. d_field_LabelPair_name(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2) when N < 57 -> d_field_LabelPair_name(Rest, N + 7, X bsl N + Acc, F1, F2); d_field_LabelPair_name(<<0:1, X:7, Rest/binary>>, N, Acc, _, F2) -> Len = X bsl N + Acc, <> = Rest, NewFValue = binary:copy(Bytes), dfp_read_field_def_LabelPair(Rest2, 0, 0, NewFValue, F2). d_field_LabelPair_value(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2) when N < 57 -> d_field_LabelPair_value(Rest, N + 7, X bsl N + Acc, F1, F2); d_field_LabelPair_value(<<0:1, X:7, Rest/binary>>, N, Acc, F1, _) -> Len = X bsl N + Acc, <> = Rest, NewFValue = binary:copy(Bytes), dfp_read_field_def_LabelPair(Rest2, 0, 0, F1, NewFValue). skip_varint_LabelPair(<<1:1, _:7, Rest/binary>>, Z1, Z2, F1, F2) -> skip_varint_LabelPair(Rest, Z1, Z2, F1, F2); skip_varint_LabelPair(<<0:1, _:7, Rest/binary>>, Z1, Z2, F1, F2) -> dfp_read_field_def_LabelPair(Rest, Z1, Z2, F1, F2). skip_length_delimited_LabelPair(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2) when N < 57 -> skip_length_delimited_LabelPair(Rest, N + 7, X bsl N + Acc, F1, F2); skip_length_delimited_LabelPair(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, dfp_read_field_def_LabelPair(Rest2, 0, 0, F1, F2). skip_32_LabelPair(<<_:32, Rest/binary>>, Z1, Z2, F1, F2) -> dfp_read_field_def_LabelPair(Rest, Z1, Z2, F1, F2). skip_64_LabelPair(<<_:64, Rest/binary>>, Z1, Z2, F1, F2) -> dfp_read_field_def_LabelPair(Rest, Z1, Z2, F1, F2). d_msg_Metric(Bin) -> dfp_read_field_def_Metric(Bin, 0, 0, id([]), id(undefined), id(undefined), id(undefined), id(undefined), id(undefined), id(undefined)). dfp_read_field_def_Metric(<<10, Rest/binary>>, Z1, Z2, F1, F2, F3, F4, F5, F6, F7) -> d_field_Metric_label(Rest, Z1, Z2, F1, F2, F3, F4, F5, F6, F7); dfp_read_field_def_Metric(<<18, Rest/binary>>, Z1, Z2, F1, F2, F3, F4, F5, F6, F7) -> d_field_Metric_gauge(Rest, Z1, Z2, F1, F2, F3, F4, F5, F6, F7); dfp_read_field_def_Metric(<<26, Rest/binary>>, Z1, Z2, F1, F2, F3, F4, F5, F6, F7) -> d_field_Metric_counter(Rest, Z1, Z2, F1, F2, F3, F4, F5, F6, F7); dfp_read_field_def_Metric(<<34, Rest/binary>>, Z1, Z2, F1, F2, F3, F4, F5, F6, F7) -> d_field_Metric_summary(Rest, Z1, Z2, F1, F2, F3, F4, F5, F6, F7); dfp_read_field_def_Metric(<<42, Rest/binary>>, Z1, Z2, F1, F2, F3, F4, F5, F6, F7) -> d_field_Metric_untyped(Rest, Z1, Z2, F1, F2, F3, F4, F5, F6, F7); dfp_read_field_def_Metric(<<58, Rest/binary>>, Z1, Z2, F1, F2, F3, F4, F5, F6, F7) -> d_field_Metric_histogram(Rest, Z1, Z2, F1, F2, F3, F4, F5, F6, F7); dfp_read_field_def_Metric(<<48, Rest/binary>>, Z1, Z2, F1, F2, F3, F4, F5, F6, F7) -> d_field_Metric_timestamp_ms(Rest, Z1, Z2, F1, F2, F3, F4, F5, F6, F7); dfp_read_field_def_Metric(<<>>, 0, 0, F1, F2, F3, F4, F5, F6, F7) -> #'Metric'{label = lists_reverse(F1), gauge = F2, counter = F3, summary = F4, untyped = F5, histogram = F6, timestamp_ms = F7}; dfp_read_field_def_Metric(Other, Z1, Z2, F1, F2, F3, F4, F5, F6, F7) -> dg_read_field_def_Metric(Other, Z1, Z2, F1, F2, F3, F4, F5, F6, F7). dg_read_field_def_Metric(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4, F5, F6, F7) when N < 32 - 7 -> dg_read_field_def_Metric(Rest, N + 7, X bsl N + Acc, F1, F2, F3, F4, F5, F6, F7); dg_read_field_def_Metric(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4, F5, F6, F7) -> Key = X bsl N + Acc, case Key of 10 -> d_field_Metric_label(Rest, 0, 0, F1, F2, F3, F4, F5, F6, F7); 18 -> d_field_Metric_gauge(Rest, 0, 0, F1, F2, F3, F4, F5, F6, F7); 26 -> d_field_Metric_counter(Rest, 0, 0, F1, F2, F3, F4, F5, F6, F7); 34 -> d_field_Metric_summary(Rest, 0, 0, F1, F2, F3, F4, F5, F6, F7); 42 -> d_field_Metric_untyped(Rest, 0, 0, F1, F2, F3, F4, F5, F6, F7); 58 -> d_field_Metric_histogram(Rest, 0, 0, F1, F2, F3, F4, F5, F6, F7); 48 -> d_field_Metric_timestamp_ms(Rest, 0, 0, F1, F2, F3, F4, F5, F6, F7); _ -> case Key band 7 of 0 -> skip_varint_Metric(Rest, 0, 0, F1, F2, F3, F4, F5, F6, F7); 1 -> skip_64_Metric(Rest, 0, 0, F1, F2, F3, F4, F5, F6, F7); 2 -> skip_length_delimited_Metric(Rest, 0, 0, F1, F2, F3, F4, F5, F6, F7); 5 -> skip_32_Metric(Rest, 0, 0, F1, F2, F3, F4, F5, F6, F7) end end; dg_read_field_def_Metric(<<>>, 0, 0, F1, F2, F3, F4, F5, F6, F7) -> #'Metric'{label = lists_reverse(F1), gauge = F2, counter = F3, summary = F4, untyped = F5, histogram = F6, timestamp_ms = F7}. d_field_Metric_label(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4, F5, F6, F7) when N < 57 -> d_field_Metric_label(Rest, N + 7, X bsl N + Acc, F1, F2, F3, F4, F5, F6, F7); d_field_Metric_label(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4, F5, F6, F7) -> Len = X bsl N + Acc, <> = Rest, NewFValue = d_msg_LabelPair(Bs), dfp_read_field_def_Metric(Rest2, 0, 0, cons(NewFValue, F1), F2, F3, F4, F5, F6, F7). d_field_Metric_gauge(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4, F5, F6, F7) when N < 57 -> d_field_Metric_gauge(Rest, N + 7, X bsl N + Acc, F1, F2, F3, F4, F5, F6, F7); d_field_Metric_gauge(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4, F5, F6, F7) -> Len = X bsl N + Acc, <> = Rest, NewFValue = d_msg_Gauge(Bs), dfp_read_field_def_Metric(Rest2, 0, 0, F1, if F2 == undefined -> NewFValue; true -> merge_msg_Gauge(F2, NewFValue) end, F3, F4, F5, F6, F7). d_field_Metric_counter(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4, F5, F6, F7) when N < 57 -> d_field_Metric_counter(Rest, N + 7, X bsl N + Acc, F1, F2, F3, F4, F5, F6, F7); d_field_Metric_counter(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4, F5, F6, F7) -> Len = X bsl N + Acc, <> = Rest, NewFValue = d_msg_Counter(Bs), dfp_read_field_def_Metric(Rest2, 0, 0, F1, F2, if F3 == undefined -> NewFValue; true -> merge_msg_Counter(F3, NewFValue) end, F4, F5, F6, F7). d_field_Metric_summary(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4, F5, F6, F7) when N < 57 -> d_field_Metric_summary(Rest, N + 7, X bsl N + Acc, F1, F2, F3, F4, F5, F6, F7); d_field_Metric_summary(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4, F5, F6, F7) -> Len = X bsl N + Acc, <> = Rest, NewFValue = d_msg_Summary(Bs), dfp_read_field_def_Metric(Rest2, 0, 0, F1, F2, F3, if F4 == undefined -> NewFValue; true -> merge_msg_Summary(F4, NewFValue) end, F5, F6, F7). d_field_Metric_untyped(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4, F5, F6, F7) when N < 57 -> d_field_Metric_untyped(Rest, N + 7, X bsl N + Acc, F1, F2, F3, F4, F5, F6, F7); d_field_Metric_untyped(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4, F5, F6, F7) -> Len = X bsl N + Acc, <> = Rest, NewFValue = d_msg_Untyped(Bs), dfp_read_field_def_Metric(Rest2, 0, 0, F1, F2, F3, F4, if F5 == undefined -> NewFValue; true -> merge_msg_Untyped(F5, NewFValue) end, F6, F7). d_field_Metric_histogram(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4, F5, F6, F7) when N < 57 -> d_field_Metric_histogram(Rest, N + 7, X bsl N + Acc, F1, F2, F3, F4, F5, F6, F7); d_field_Metric_histogram(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4, F5, F6, F7) -> Len = X bsl N + Acc, <> = Rest, NewFValue = d_msg_Histogram(Bs), dfp_read_field_def_Metric(Rest2, 0, 0, F1, F2, F3, F4, F5, if F6 == undefined -> NewFValue; true -> merge_msg_Histogram(F6, NewFValue) end, F7). d_field_Metric_timestamp_ms(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4, F5, F6, F7) when N < 57 -> d_field_Metric_timestamp_ms(Rest, N + 7, X bsl N + Acc, F1, F2, F3, F4, F5, F6, F7); d_field_Metric_timestamp_ms(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4, F5, F6, _) -> <> = <<(X bsl N + Acc):64/unsigned-native>>, dfp_read_field_def_Metric(Rest, 0, 0, F1, F2, F3, F4, F5, F6, NewFValue). skip_varint_Metric(<<1:1, _:7, Rest/binary>>, Z1, Z2, F1, F2, F3, F4, F5, F6, F7) -> skip_varint_Metric(Rest, Z1, Z2, F1, F2, F3, F4, F5, F6, F7); skip_varint_Metric(<<0:1, _:7, Rest/binary>>, Z1, Z2, F1, F2, F3, F4, F5, F6, F7) -> dfp_read_field_def_Metric(Rest, Z1, Z2, F1, F2, F3, F4, F5, F6, F7). skip_length_delimited_Metric(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4, F5, F6, F7) when N < 57 -> skip_length_delimited_Metric(Rest, N + 7, X bsl N + Acc, F1, F2, F3, F4, F5, F6, F7); skip_length_delimited_Metric(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4, F5, F6, F7) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, dfp_read_field_def_Metric(Rest2, 0, 0, F1, F2, F3, F4, F5, F6, F7). skip_32_Metric(<<_:32, Rest/binary>>, Z1, Z2, F1, F2, F3, F4, F5, F6, F7) -> dfp_read_field_def_Metric(Rest, Z1, Z2, F1, F2, F3, F4, F5, F6, F7). skip_64_Metric(<<_:64, Rest/binary>>, Z1, Z2, F1, F2, F3, F4, F5, F6, F7) -> dfp_read_field_def_Metric(Rest, Z1, Z2, F1, F2, F3, F4, F5, F6, F7). d_msg_MetricFamily(Bin) -> dfp_read_field_def_MetricFamily(Bin, 0, 0, id(undefined), id(undefined), id(undefined), id([])). dfp_read_field_def_MetricFamily(<<10, Rest/binary>>, Z1, Z2, F1, F2, F3, F4) -> d_field_MetricFamily_name(Rest, Z1, Z2, F1, F2, F3, F4); dfp_read_field_def_MetricFamily(<<18, Rest/binary>>, Z1, Z2, F1, F2, F3, F4) -> d_field_MetricFamily_help(Rest, Z1, Z2, F1, F2, F3, F4); dfp_read_field_def_MetricFamily(<<24, Rest/binary>>, Z1, Z2, F1, F2, F3, F4) -> d_field_MetricFamily_type(Rest, Z1, Z2, F1, F2, F3, F4); dfp_read_field_def_MetricFamily(<<34, Rest/binary>>, Z1, Z2, F1, F2, F3, F4) -> d_field_MetricFamily_metric(Rest, Z1, Z2, F1, F2, F3, F4); dfp_read_field_def_MetricFamily(<<>>, 0, 0, F1, F2, F3, F4) -> #'MetricFamily'{name = F1, help = F2, type = F3, metric = lists_reverse(F4)}; dfp_read_field_def_MetricFamily(Other, Z1, Z2, F1, F2, F3, F4) -> dg_read_field_def_MetricFamily(Other, Z1, Z2, F1, F2, F3, F4). dg_read_field_def_MetricFamily(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4) when N < 32 - 7 -> dg_read_field_def_MetricFamily(Rest, N + 7, X bsl N + Acc, F1, F2, F3, F4); dg_read_field_def_MetricFamily(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4) -> Key = X bsl N + Acc, case Key of 10 -> d_field_MetricFamily_name(Rest, 0, 0, F1, F2, F3, F4); 18 -> d_field_MetricFamily_help(Rest, 0, 0, F1, F2, F3, F4); 24 -> d_field_MetricFamily_type(Rest, 0, 0, F1, F2, F3, F4); 34 -> d_field_MetricFamily_metric(Rest, 0, 0, F1, F2, F3, F4); _ -> case Key band 7 of 0 -> skip_varint_MetricFamily(Rest, 0, 0, F1, F2, F3, F4); 1 -> skip_64_MetricFamily(Rest, 0, 0, F1, F2, F3, F4); 2 -> skip_length_delimited_MetricFamily(Rest, 0, 0, F1, F2, F3, F4); 5 -> skip_32_MetricFamily(Rest, 0, 0, F1, F2, F3, F4) end end; dg_read_field_def_MetricFamily(<<>>, 0, 0, F1, F2, F3, F4) -> #'MetricFamily'{name = F1, help = F2, type = F3, metric = lists_reverse(F4)}. d_field_MetricFamily_name(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4) when N < 57 -> d_field_MetricFamily_name(Rest, N + 7, X bsl N + Acc, F1, F2, F3, F4); d_field_MetricFamily_name(<<0:1, X:7, Rest/binary>>, N, Acc, _, F2, F3, F4) -> Len = X bsl N + Acc, <> = Rest, NewFValue = binary:copy(Bytes), dfp_read_field_def_MetricFamily(Rest2, 0, 0, NewFValue, F2, F3, F4). d_field_MetricFamily_help(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4) when N < 57 -> d_field_MetricFamily_help(Rest, N + 7, X bsl N + Acc, F1, F2, F3, F4); d_field_MetricFamily_help(<<0:1, X:7, Rest/binary>>, N, Acc, F1, _, F3, F4) -> Len = X bsl N + Acc, <> = Rest, NewFValue = binary:copy(Bytes), dfp_read_field_def_MetricFamily(Rest2, 0, 0, F1, NewFValue, F3, F4). d_field_MetricFamily_type(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4) when N < 57 -> d_field_MetricFamily_type(Rest, N + 7, X bsl N + Acc, F1, F2, F3, F4); d_field_MetricFamily_type(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2, _, F4) -> <> = <<(X bsl N + Acc):32/unsigned-native>>, NewFValue = d_enum_MetricType(Tmp), dfp_read_field_def_MetricFamily(Rest, 0, 0, F1, F2, NewFValue, F4). d_field_MetricFamily_metric(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4) when N < 57 -> d_field_MetricFamily_metric(Rest, N + 7, X bsl N + Acc, F1, F2, F3, F4); d_field_MetricFamily_metric(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4) -> Len = X bsl N + Acc, <> = Rest, NewFValue = d_msg_Metric(Bs), dfp_read_field_def_MetricFamily(Rest2, 0, 0, F1, F2, F3, cons(NewFValue, F4)). skip_varint_MetricFamily(<<1:1, _:7, Rest/binary>>, Z1, Z2, F1, F2, F3, F4) -> skip_varint_MetricFamily(Rest, Z1, Z2, F1, F2, F3, F4); skip_varint_MetricFamily(<<0:1, _:7, Rest/binary>>, Z1, Z2, F1, F2, F3, F4) -> dfp_read_field_def_MetricFamily(Rest, Z1, Z2, F1, F2, F3, F4). skip_length_delimited_MetricFamily(<<1:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4) when N < 57 -> skip_length_delimited_MetricFamily(Rest, N + 7, X bsl N + Acc, F1, F2, F3, F4); skip_length_delimited_MetricFamily(<<0:1, X:7, Rest/binary>>, N, Acc, F1, F2, F3, F4) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, dfp_read_field_def_MetricFamily(Rest2, 0, 0, F1, F2, F3, F4). skip_32_MetricFamily(<<_:32, Rest/binary>>, Z1, Z2, F1, F2, F3, F4) -> dfp_read_field_def_MetricFamily(Rest, Z1, Z2, F1, F2, F3, F4). skip_64_MetricFamily(<<_:64, Rest/binary>>, Z1, Z2, F1, F2, F3, F4) -> dfp_read_field_def_MetricFamily(Rest, Z1, Z2, F1, F2, F3, F4). d_enum_MetricType(0) -> 'COUNTER'; d_enum_MetricType(1) -> 'GAUGE'; d_enum_MetricType(2) -> 'SUMMARY'; d_enum_MetricType(3) -> 'UNTYPED'; d_enum_MetricType(4) -> 'HISTOGRAM'. merge_msgs(Prev, New) when element(1, Prev) =:= element(1, New) -> case Prev of #'Bucket'{} -> merge_msg_Bucket(Prev, New); #'Histogram'{} -> merge_msg_Histogram(Prev, New); #'Untyped'{} -> merge_msg_Untyped(Prev, New); #'Quantile'{} -> merge_msg_Quantile(Prev, New); #'Summary'{} -> merge_msg_Summary(Prev, New); #'Counter'{} -> merge_msg_Counter(Prev, New); #'Gauge'{} -> merge_msg_Gauge(Prev, New); #'LabelPair'{} -> merge_msg_LabelPair(Prev, New); #'Metric'{} -> merge_msg_Metric(Prev, New); #'MetricFamily'{} -> merge_msg_MetricFamily(Prev, New) end. merge_msg_Bucket(#'Bucket'{cumulative_count = PFcumulative_count, upper_bound = PFupper_bound}, #'Bucket'{cumulative_count = NFcumulative_count, upper_bound = NFupper_bound}) -> #'Bucket'{cumulative_count = if NFcumulative_count =:= undefined -> PFcumulative_count; true -> NFcumulative_count end, upper_bound = if NFupper_bound =:= undefined -> PFupper_bound; true -> NFupper_bound end}. merge_msg_Histogram(Prev, undefined) -> Prev; merge_msg_Histogram(undefined, New) -> New; merge_msg_Histogram(#'Histogram'{sample_count = PFsample_count, sample_sum = PFsample_sum, bucket = PFbucket}, #'Histogram'{sample_count = NFsample_count, sample_sum = NFsample_sum, bucket = NFbucket}) -> #'Histogram'{sample_count = if NFsample_count =:= undefined -> PFsample_count; true -> NFsample_count end, sample_sum = if NFsample_sum =:= undefined -> PFsample_sum; true -> NFsample_sum end, bucket = 'erlang_++'(PFbucket, NFbucket)}. merge_msg_Untyped(Prev, undefined) -> Prev; merge_msg_Untyped(undefined, New) -> New; merge_msg_Untyped(#'Untyped'{value = PFvalue}, #'Untyped'{value = NFvalue}) -> #'Untyped'{value = if NFvalue =:= undefined -> PFvalue; true -> NFvalue end}. merge_msg_Quantile(#'Quantile'{quantile = PFquantile, value = PFvalue}, #'Quantile'{quantile = NFquantile, value = NFvalue}) -> #'Quantile'{quantile = if NFquantile =:= undefined -> PFquantile; true -> NFquantile end, value = if NFvalue =:= undefined -> PFvalue; true -> NFvalue end}. merge_msg_Summary(Prev, undefined) -> Prev; merge_msg_Summary(undefined, New) -> New; merge_msg_Summary(#'Summary'{sample_count = PFsample_count, sample_sum = PFsample_sum, quantile = PFquantile}, #'Summary'{sample_count = NFsample_count, sample_sum = NFsample_sum, quantile = NFquantile}) -> #'Summary'{sample_count = if NFsample_count =:= undefined -> PFsample_count; true -> NFsample_count end, sample_sum = if NFsample_sum =:= undefined -> PFsample_sum; true -> NFsample_sum end, quantile = 'erlang_++'(PFquantile, NFquantile)}. merge_msg_Counter(Prev, undefined) -> Prev; merge_msg_Counter(undefined, New) -> New; merge_msg_Counter(#'Counter'{value = PFvalue}, #'Counter'{value = NFvalue}) -> #'Counter'{value = if NFvalue =:= undefined -> PFvalue; true -> NFvalue end}. merge_msg_Gauge(Prev, undefined) -> Prev; merge_msg_Gauge(undefined, New) -> New; merge_msg_Gauge(#'Gauge'{value = PFvalue}, #'Gauge'{value = NFvalue}) -> #'Gauge'{value = if NFvalue =:= undefined -> PFvalue; true -> NFvalue end}. merge_msg_LabelPair(#'LabelPair'{name = PFname, value = PFvalue}, #'LabelPair'{name = NFname, value = NFvalue}) -> #'LabelPair'{name = if NFname =:= undefined -> PFname; true -> NFname end, value = if NFvalue =:= undefined -> PFvalue; true -> NFvalue end}. merge_msg_Metric(#'Metric'{label = PFlabel, gauge = PFgauge, counter = PFcounter, summary = PFsummary, untyped = PFuntyped, histogram = PFhistogram, timestamp_ms = PFtimestamp_ms}, #'Metric'{label = NFlabel, gauge = NFgauge, counter = NFcounter, summary = NFsummary, untyped = NFuntyped, histogram = NFhistogram, timestamp_ms = NFtimestamp_ms}) -> #'Metric'{label = 'erlang_++'(PFlabel, NFlabel), gauge = merge_msg_Gauge(PFgauge, NFgauge), counter = merge_msg_Counter(PFcounter, NFcounter), summary = merge_msg_Summary(PFsummary, NFsummary), untyped = merge_msg_Untyped(PFuntyped, NFuntyped), histogram = merge_msg_Histogram(PFhistogram, NFhistogram), timestamp_ms = if NFtimestamp_ms =:= undefined -> PFtimestamp_ms; true -> NFtimestamp_ms end}. merge_msg_MetricFamily(#'MetricFamily'{name = PFname, help = PFhelp, type = PFtype, metric = PFmetric}, #'MetricFamily'{name = NFname, help = NFhelp, type = NFtype, metric = NFmetric}) -> #'MetricFamily'{name = if NFname =:= undefined -> PFname; true -> NFname end, help = if NFhelp =:= undefined -> PFhelp; true -> NFhelp end, type = if NFtype =:= undefined -> PFtype; true -> NFtype end, metric = 'erlang_++'(PFmetric, NFmetric)}. verify_msg(Msg) -> case Msg of #'Bucket'{} -> v_msg_Bucket(Msg, ['Bucket']); #'Histogram'{} -> v_msg_Histogram(Msg, ['Histogram']); #'Untyped'{} -> v_msg_Untyped(Msg, ['Untyped']); #'Quantile'{} -> v_msg_Quantile(Msg, ['Quantile']); #'Summary'{} -> v_msg_Summary(Msg, ['Summary']); #'Counter'{} -> v_msg_Counter(Msg, ['Counter']); #'Gauge'{} -> v_msg_Gauge(Msg, ['Gauge']); #'LabelPair'{} -> v_msg_LabelPair(Msg, ['LabelPair']); #'Metric'{} -> v_msg_Metric(Msg, ['Metric']); #'MetricFamily'{} -> v_msg_MetricFamily(Msg, ['MetricFamily']); _ -> mk_type_error(not_a_known_message, Msg, []) end. v_msg_Bucket(#'Bucket'{cumulative_count = F1, upper_bound = F2}, Path) -> if F1 == undefined -> ok; true -> v_type_uint64(F1, [cumulative_count | Path]) end, if F2 == undefined -> ok; true -> v_type_double(F2, [upper_bound | Path]) end, ok; v_msg_Bucket(X, Path) -> mk_type_error({expected_msg, 'Bucket'}, X, Path). v_msg_Histogram(#'Histogram'{sample_count = F1, sample_sum = F2, bucket = F3}, Path) -> if F1 == undefined -> ok; true -> v_type_uint64(F1, [sample_count | Path]) end, if F2 == undefined -> ok; true -> v_type_double(F2, [sample_sum | Path]) end, if is_list(F3) -> _ = [v_msg_Bucket(Elem, [bucket | Path]) || Elem <- F3], ok; true -> mk_type_error({invalid_list_of, {msg, 'Bucket'}}, F3, Path) end, ok; v_msg_Histogram(X, Path) -> mk_type_error({expected_msg, 'Histogram'}, X, Path). v_msg_Untyped(#'Untyped'{value = F1}, Path) -> if F1 == undefined -> ok; true -> v_type_double(F1, [value | Path]) end, ok; v_msg_Untyped(X, Path) -> mk_type_error({expected_msg, 'Untyped'}, X, Path). v_msg_Quantile(#'Quantile'{quantile = F1, value = F2}, Path) -> if F1 == undefined -> ok; true -> v_type_double(F1, [quantile | Path]) end, if F2 == undefined -> ok; true -> v_type_double(F2, [value | Path]) end, ok; v_msg_Quantile(X, Path) -> mk_type_error({expected_msg, 'Quantile'}, X, Path). v_msg_Summary(#'Summary'{sample_count = F1, sample_sum = F2, quantile = F3}, Path) -> if F1 == undefined -> ok; true -> v_type_uint64(F1, [sample_count | Path]) end, if F2 == undefined -> ok; true -> v_type_double(F2, [sample_sum | Path]) end, if is_list(F3) -> _ = [v_msg_Quantile(Elem, [quantile | Path]) || Elem <- F3], ok; true -> mk_type_error({invalid_list_of, {msg, 'Quantile'}}, F3, Path) end, ok; v_msg_Summary(X, Path) -> mk_type_error({expected_msg, 'Summary'}, X, Path). v_msg_Counter(#'Counter'{value = F1}, Path) -> if F1 == undefined -> ok; true -> v_type_double(F1, [value | Path]) end, ok; v_msg_Counter(X, Path) -> mk_type_error({expected_msg, 'Counter'}, X, Path). v_msg_Gauge(#'Gauge'{value = F1}, Path) -> if F1 == undefined -> ok; true -> v_type_double(F1, [value | Path]) end, ok; v_msg_Gauge(X, Path) -> mk_type_error({expected_msg, 'Gauge'}, X, Path). v_msg_LabelPair(#'LabelPair'{name = F1, value = F2}, Path) -> if F1 == undefined -> ok; true -> v_type_string(F1, [name | Path]) end, if F2 == undefined -> ok; true -> v_type_string(F2, [value | Path]) end, ok; v_msg_LabelPair(X, Path) -> mk_type_error({expected_msg, 'LabelPair'}, X, Path). v_msg_Metric(#'Metric'{label = F1, gauge = F2, counter = F3, summary = F4, untyped = F5, histogram = F6, timestamp_ms = F7}, Path) -> if is_list(F1) -> _ = [v_msg_LabelPair(Elem, [label | Path]) || Elem <- F1], ok; true -> mk_type_error({invalid_list_of, {msg, 'LabelPair'}}, F1, Path) end, if F2 == undefined -> ok; true -> v_msg_Gauge(F2, [gauge | Path]) end, if F3 == undefined -> ok; true -> v_msg_Counter(F3, [counter | Path]) end, if F4 == undefined -> ok; true -> v_msg_Summary(F4, [summary | Path]) end, if F5 == undefined -> ok; true -> v_msg_Untyped(F5, [untyped | Path]) end, if F6 == undefined -> ok; true -> v_msg_Histogram(F6, [histogram | Path]) end, if F7 == undefined -> ok; true -> v_type_int64(F7, [timestamp_ms | Path]) end, ok; v_msg_Metric(X, Path) -> mk_type_error({expected_msg, 'Metric'}, X, Path). v_msg_MetricFamily(#'MetricFamily'{name = F1, help = F2, type = F3, metric = F4}, Path) -> if F1 == undefined -> ok; true -> v_type_string(F1, [name | Path]) end, if F2 == undefined -> ok; true -> v_type_string(F2, [help | Path]) end, if F3 == undefined -> ok; true -> v_enum_MetricType(F3, [type | Path]) end, if is_list(F4) -> _ = [v_msg_Metric(Elem, [metric | Path]) || Elem <- F4], ok; true -> mk_type_error({invalid_list_of, {msg, 'Metric'}}, F4, Path) end, ok. v_enum_MetricType('COUNTER', _Path) -> ok; v_enum_MetricType('GAUGE', _Path) -> ok; v_enum_MetricType('SUMMARY', _Path) -> ok; v_enum_MetricType('UNTYPED', _Path) -> ok; v_enum_MetricType('HISTOGRAM', _Path) -> ok; v_enum_MetricType(X, Path) -> mk_type_error({invalid_enum, 'MetricType'}, X, Path). v_type_int64(N, _Path) when -9223372036854775808 =< N, N =< 9223372036854775807 -> ok; v_type_int64(N, Path) when is_integer(N) -> mk_type_error({value_out_of_range, int64, signed, 64}, N, Path); v_type_int64(X, Path) -> mk_type_error({bad_integer, int64, signed, 64}, X, Path). v_type_uint64(N, _Path) when 0 =< N, N =< 18446744073709551615 -> ok; v_type_uint64(N, Path) when is_integer(N) -> mk_type_error({value_out_of_range, uint64, unsigned, 64}, N, Path); v_type_uint64(X, Path) -> mk_type_error({bad_integer, uint64, unsigned, 64}, X, Path). v_type_double(N, _Path) when is_float(N) -> ok; v_type_double(N, _Path) when is_integer(N) -> ok; v_type_double(X, Path) -> mk_type_error(bad_double_value, X, Path). v_type_string(S, Path) when is_list(S); is_binary(S) -> try unicode:characters_to_binary(S) of B when is_binary(B) -> ok; {error, _, _} -> mk_type_error(bad_unicode_string, S, Path) catch error:badarg -> mk_type_error(bad_unicode_string, S, Path) end; v_type_string(X, Path) -> mk_type_error(bad_unicode_string, X, Path). mk_type_error(Error, ValueSeen, Path) -> Path2 = prettify_path(Path), erlang:error({gpb_type_error, {Error, [{value, ValueSeen}, {path, Path2}]}}). prettify_path([]) -> top_level; prettify_path(PathR) -> list_to_atom(string:join(lists:map(fun atom_to_list/1, lists:reverse(PathR)), ".")). -compile({nowarn_unused_function,id/1}). -compile({inline,id/1}). id(X) -> X. -compile({nowarn_unused_function,cons/2}). -compile({inline,cons/2}). cons(Elem, Acc) -> [Elem | Acc]. -compile({nowarn_unused_function,lists_reverse/1}). -compile({inline,lists_reverse/1}). 'lists_reverse'(L) -> lists:reverse(L). -compile({nowarn_unused_function,'erlang_++'/2}). -compile({inline,'erlang_++'/2}). 'erlang_++'(A, B) -> A ++ B. get_msg_defs() -> [{{enum, 'MetricType'}, [{'COUNTER', 0}, {'GAUGE', 1}, {'SUMMARY', 2}, {'UNTYPED', 3}, {'HISTOGRAM', 4}]}, {{msg, 'Bucket'}, [#field{name = cumulative_count, fnum = 1, rnum = 2, type = uint64, occurrence = optional, opts = []}, #field{name = upper_bound, fnum = 2, rnum = 3, type = double, occurrence = optional, opts = []}]}, {{msg, 'Histogram'}, [#field{name = sample_count, fnum = 1, rnum = 2, type = uint64, occurrence = optional, opts = []}, #field{name = sample_sum, fnum = 2, rnum = 3, type = double, occurrence = optional, opts = []}, #field{name = bucket, fnum = 3, rnum = 4, type = {msg, 'Bucket'}, occurrence = repeated, opts = []}]}, {{msg, 'Untyped'}, [#field{name = value, fnum = 1, rnum = 2, type = double, occurrence = optional, opts = []}]}, {{msg, 'Quantile'}, [#field{name = quantile, fnum = 1, rnum = 2, type = double, occurrence = optional, opts = []}, #field{name = value, fnum = 2, rnum = 3, type = double, occurrence = optional, opts = []}]}, {{msg, 'Summary'}, [#field{name = sample_count, fnum = 1, rnum = 2, type = uint64, occurrence = optional, opts = []}, #field{name = sample_sum, fnum = 2, rnum = 3, type = double, occurrence = optional, opts = []}, #field{name = quantile, fnum = 3, rnum = 4, type = {msg, 'Quantile'}, occurrence = repeated, opts = []}]}, {{msg, 'Counter'}, [#field{name = value, fnum = 1, rnum = 2, type = double, occurrence = optional, opts = []}]}, {{msg, 'Gauge'}, [#field{name = value, fnum = 1, rnum = 2, type = double, occurrence = optional, opts = []}]}, {{msg, 'LabelPair'}, [#field{name = name, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = value, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]}, {{msg, 'Metric'}, [#field{name = label, fnum = 1, rnum = 2, type = {msg, 'LabelPair'}, occurrence = repeated, opts = []}, #field{name = gauge, fnum = 2, rnum = 3, type = {msg, 'Gauge'}, occurrence = optional, opts = []}, #field{name = counter, fnum = 3, rnum = 4, type = {msg, 'Counter'}, occurrence = optional, opts = []}, #field{name = summary, fnum = 4, rnum = 5, type = {msg, 'Summary'}, occurrence = optional, opts = []}, #field{name = untyped, fnum = 5, rnum = 6, type = {msg, 'Untyped'}, occurrence = optional, opts = []}, #field{name = histogram, fnum = 7, rnum = 7, type = {msg, 'Histogram'}, occurrence = optional, opts = []}, #field{name = timestamp_ms, fnum = 6, rnum = 8, type = int64, occurrence = optional, opts = []}]}, {{msg, 'MetricFamily'}, [#field{name = name, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = help, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, #field{name = type, fnum = 3, rnum = 4, type = {enum, 'MetricType'}, occurrence = optional, opts = []}, #field{name = metric, fnum = 4, rnum = 5, type = {msg, 'Metric'}, occurrence = repeated, opts = []}]}]. get_msg_names() -> ['Bucket', 'Histogram', 'Untyped', 'Quantile', 'Summary', 'Counter', 'Gauge', 'LabelPair', 'Metric', 'MetricFamily']. get_enum_names() -> ['MetricType']. fetch_msg_def(MsgName) -> case find_msg_def(MsgName) of Fs when is_list(Fs) -> Fs; error -> erlang:error({no_such_msg, MsgName}) end. fetch_enum_def(EnumName) -> case find_enum_def(EnumName) of Es when is_list(Es) -> Es; error -> erlang:error({no_such_enum, EnumName}) end. find_msg_def('Bucket') -> [#field{name = cumulative_count, fnum = 1, rnum = 2, type = uint64, occurrence = optional, opts = []}, #field{name = upper_bound, fnum = 2, rnum = 3, type = double, occurrence = optional, opts = []}]; find_msg_def('Histogram') -> [#field{name = sample_count, fnum = 1, rnum = 2, type = uint64, occurrence = optional, opts = []}, #field{name = sample_sum, fnum = 2, rnum = 3, type = double, occurrence = optional, opts = []}, #field{name = bucket, fnum = 3, rnum = 4, type = {msg, 'Bucket'}, occurrence = repeated, opts = []}]; find_msg_def('Untyped') -> [#field{name = value, fnum = 1, rnum = 2, type = double, occurrence = optional, opts = []}]; find_msg_def('Quantile') -> [#field{name = quantile, fnum = 1, rnum = 2, type = double, occurrence = optional, opts = []}, #field{name = value, fnum = 2, rnum = 3, type = double, occurrence = optional, opts = []}]; find_msg_def('Summary') -> [#field{name = sample_count, fnum = 1, rnum = 2, type = uint64, occurrence = optional, opts = []}, #field{name = sample_sum, fnum = 2, rnum = 3, type = double, occurrence = optional, opts = []}, #field{name = quantile, fnum = 3, rnum = 4, type = {msg, 'Quantile'}, occurrence = repeated, opts = []}]; find_msg_def('Counter') -> [#field{name = value, fnum = 1, rnum = 2, type = double, occurrence = optional, opts = []}]; find_msg_def('Gauge') -> [#field{name = value, fnum = 1, rnum = 2, type = double, occurrence = optional, opts = []}]; find_msg_def('LabelPair') -> [#field{name = name, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = value, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]; find_msg_def('Metric') -> [#field{name = label, fnum = 1, rnum = 2, type = {msg, 'LabelPair'}, occurrence = repeated, opts = []}, #field{name = gauge, fnum = 2, rnum = 3, type = {msg, 'Gauge'}, occurrence = optional, opts = []}, #field{name = counter, fnum = 3, rnum = 4, type = {msg, 'Counter'}, occurrence = optional, opts = []}, #field{name = summary, fnum = 4, rnum = 5, type = {msg, 'Summary'}, occurrence = optional, opts = []}, #field{name = untyped, fnum = 5, rnum = 6, type = {msg, 'Untyped'}, occurrence = optional, opts = []}, #field{name = histogram, fnum = 7, rnum = 7, type = {msg, 'Histogram'}, occurrence = optional, opts = []}, #field{name = timestamp_ms, fnum = 6, rnum = 8, type = int64, occurrence = optional, opts = []}]; find_msg_def('MetricFamily') -> [#field{name = name, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = help, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, #field{name = type, fnum = 3, rnum = 4, type = {enum, 'MetricType'}, occurrence = optional, opts = []}, #field{name = metric, fnum = 4, rnum = 5, type = {msg, 'Metric'}, occurrence = repeated, opts = []}]; find_msg_def(_) -> error. find_enum_def('MetricType') -> [{'COUNTER', 0}, {'GAUGE', 1}, {'SUMMARY', 2}, {'UNTYPED', 3}, {'HISTOGRAM', 4}]; find_enum_def(_) -> error. enum_symbol_by_value('MetricType', Value) -> enum_symbol_by_value_MetricType(Value). enum_value_by_symbol('MetricType', Sym) -> enum_value_by_symbol_MetricType(Sym). enum_symbol_by_value_MetricType(0) -> 'COUNTER'; enum_symbol_by_value_MetricType(1) -> 'GAUGE'; enum_symbol_by_value_MetricType(2) -> 'SUMMARY'; enum_symbol_by_value_MetricType(3) -> 'UNTYPED'; enum_symbol_by_value_MetricType(4) -> 'HISTOGRAM'. enum_value_by_symbol_MetricType('COUNTER') -> 0; enum_value_by_symbol_MetricType('GAUGE') -> 1; enum_value_by_symbol_MetricType('SUMMARY') -> 2; enum_value_by_symbol_MetricType('UNTYPED') -> 3; enum_value_by_symbol_MetricType('HISTOGRAM') -> 4. get_service_names() -> []. get_service_def(_) -> error. get_rpc_names(_) -> error. find_rpc_def(_, _) -> error. fetch_rpc_def(ServiceName, RpcName) -> erlang:error({no_such_rpc, ServiceName, RpcName}). get_package_name() -> 'io.prometheus.client'. gpb_version_as_string() -> "3.21.2". gpb_version_as_list() -> [3,21,2].