Current section
Files
Jump to
Current section
Files
src/sparkleplug.erl
-module(sparkleplug).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([sparkplug_payload_to_json_string/1, metric_to_json_string/1, string_to_metric/1, string_to_sparkplug_payload/1, bit_array_to_sparkplug_payload/1]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-file("src\\sparkleplug.gleam", 245).
-spec datatype_decoder() -> gleam@dynamic@decode:decoder(sparkleplug@sparkplug_b@payload@datatype:data_type()).
datatype_decoder() ->
_pipe@2 = gleam@dynamic@decode:one_of(
begin
_pipe = {decoder, fun gleam@dynamic@decode:decode_int/1},
gleam@dynamic@decode:map(
_pipe,
fun sparkleplug@sparkplug_b@payload@datatype:from_int/1
)
end,
[begin
_pipe@1 = {decoder, fun gleam@dynamic@decode:decode_string/1},
gleam@dynamic@decode:map(
_pipe@1,
fun sparkleplug@sparkplug_b@payload@datatype:from_string/1
)
end]
),
gleam@dynamic@decode:map(_pipe@2, fun(Result) -> case Result of
{ok, Datatype} ->
Datatype;
{error, _} ->
bytes
end end).
-file("src\\sparkleplug.gleam", 324).
-spec data_value_decoder() -> gleam@dynamic@decode:decoder(sparkleplug@sparkplug_b@payload@dataset:value()).
data_value_decoder() ->
gleam@dynamic@decode:one_of(
begin
_pipe = {decoder, fun gleam@dynamic@decode:decode_int/1},
gleam@dynamic@decode:map(
_pipe,
fun(Field@0) -> {int_value, Field@0} end
)
end,
[begin
_pipe@1 = {decoder, fun gleam@dynamic@decode:decode_float/1},
gleam@dynamic@decode:map(
_pipe@1,
fun(Field@0) -> {float_value, Field@0} end
)
end,
begin
_pipe@2 = {decoder, fun gleam@dynamic@decode:decode_bool/1},
gleam@dynamic@decode:map(
_pipe@2,
fun(Field@0) -> {boolean_value, Field@0} end
)
end,
begin
_pipe@3 = {decoder, fun gleam@dynamic@decode:decode_string/1},
gleam@dynamic@decode:map(
_pipe@3,
fun(Field@0) -> {string_value, Field@0} end
)
end]
).
-file("src\\sparkleplug.gleam", 316).
-spec data_set_value_decoder() -> gleam@dynamic@decode:decoder(sparkleplug@sparkplug_b@payload@dataset:data_set_value()).
data_set_value_decoder() ->
gleam@dynamic@decode:field(
<<"value"/utf8>>,
gleam@dynamic@decode:optional(data_value_decoder()),
fun(Maybe_data_set_value) ->
gleam@dynamic@decode:success({data_set_value, Maybe_data_set_value})
end
).
-file("src\\sparkleplug.gleam", 311).
-spec row_decoder() -> gleam@dynamic@decode:decoder(sparkleplug@sparkplug_b@payload@dataset:row()).
row_decoder() ->
gleam@dynamic@decode:field(
<<"elements"/utf8>>,
gleam@dynamic@decode:list(data_set_value_decoder()),
fun(Row) -> gleam@dynamic@decode:success({row, Row}) end
).
-file("src\\sparkleplug.gleam", 300).
-spec data_set_decoder() -> gleam@dynamic@decode:decoder(sparkleplug@sparkplug_b@payload@dataset:data_set()).
data_set_decoder() ->
gleam@dynamic@decode:field(
<<"num_of_columns"/utf8>>,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_int/1}
),
fun(Maybe_num_of_columns) ->
gleam@dynamic@decode:field(
<<"columns"/utf8>>,
gleam@dynamic@decode:list(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Columns) ->
gleam@dynamic@decode:field(
<<"types"/utf8>>,
gleam@dynamic@decode:list(
{decoder, fun gleam@dynamic@decode:decode_int/1}
),
fun(Types) ->
gleam@dynamic@decode:field(
<<"rows"/utf8>>,
gleam@dynamic@decode:list(row_decoder()),
fun(Rows) ->
gleam@dynamic@decode:success(
{data_set,
Maybe_num_of_columns,
Columns,
Types,
Rows}
)
end
)
end
)
end
)
end
).
-file("src\\sparkleplug.gleam", 353).
-spec parameter_decoder() -> gleam@dynamic@decode:decoder(sparkleplug@sparkplug_b@payload@metric:parameter()).
parameter_decoder() ->
gleam@dynamic@decode:field(
<<"name"/utf8>>,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Maybe_name) ->
gleam@dynamic@decode:field(
<<"type"/utf8>>,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Maybe_type) ->
gleam@dynamic@decode:field(
<<"value"/utf8>>,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Maybe_value) ->
gleam@dynamic@decode:success(
{parameter, Maybe_name, Maybe_type, Maybe_value}
)
end
)
end
)
end
).
-file("src\\sparkleplug.gleam", 366).
-spec property_value_decoder() -> gleam@dynamic@decode:decoder(sparkleplug@sparkplug_b@payload@propertyset:property_value()).
property_value_decoder() ->
gleam@dynamic@decode:field(
<<"type"/utf8>>,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_int/1}
),
fun(Maybe_type) ->
gleam@dynamic@decode:field(
<<"is_null"/utf8>>,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_bool/1}
),
fun(Maybe_is_null) ->
gleam@dynamic@decode:field(
<<"value"/utf8>>,
gleam@dynamic@decode:optional(
gleam@dynamic@decode:one_of(
begin
_pipe = {decoder,
fun gleam@dynamic@decode:decode_int/1},
gleam@dynamic@decode:map(
_pipe,
fun(Field@0) -> {int_value, Field@0} end
)
end,
[begin
_pipe@1 = {decoder,
fun gleam@dynamic@decode:decode_float/1},
gleam@dynamic@decode:map(
_pipe@1,
fun(Field@0) -> {float_value, Field@0} end
)
end,
begin
_pipe@2 = {decoder,
fun gleam@dynamic@decode:decode_bool/1},
gleam@dynamic@decode:map(
_pipe@2,
fun(Field@0) -> {boolean_value, Field@0} end
)
end,
begin
_pipe@3 = {decoder,
fun gleam@dynamic@decode:decode_string/1},
gleam@dynamic@decode:map(
_pipe@3,
fun(Field@0) -> {string_value, Field@0} end
)
end]
)
),
fun(Maybe_value) ->
gleam@dynamic@decode:success(
{property_value,
Maybe_type,
Maybe_is_null,
Maybe_value}
)
end
)
end
)
end
).
-file("src\\sparkleplug.gleam", 360).
-spec property_set_decoder() -> gleam@dynamic@decode:decoder(sparkleplug@sparkplug_b@payload@propertyset:property_set()).
property_set_decoder() ->
gleam@dynamic@decode:field(
<<"keys"/utf8>>,
gleam@dynamic@decode:list(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Keys) ->
gleam@dynamic@decode:field(
<<"values"/utf8>>,
gleam@dynamic@decode:list(property_value_decoder()),
fun(Values) ->
gleam@dynamic@decode:success({property_set, Keys, Values})
end
)
end
).
-file("src\\sparkleplug.gleam", 386).
-spec property_set_list_decoder() -> gleam@dynamic@decode:decoder(sparkleplug@sparkplug_b@payload@propertyset:property_set_list()).
property_set_list_decoder() ->
gleam@dynamic@decode:field(
<<"propertyset"/utf8>>,
gleam@dynamic@decode:list(property_set_decoder()),
fun(Property_set_list) ->
gleam@dynamic@decode:success({property_set_list, Property_set_list})
end
).
-file("src\\sparkleplug.gleam", 415).
-spec encode_data_set_val(sparkleplug@sparkplug_b@payload@dataset:value()) -> gleam@json:json().
encode_data_set_val(Value) ->
case Value of
{int_value, Val} ->
gleam@json:int(Val);
{long_value, Val@1} ->
gleam@json:int(Val@1);
{float_value, Val@2} ->
gleam@json:float(Val@2);
{double_value, Val@3} ->
gleam@json:float(Val@3);
{boolean_value, Val@4} ->
gleam@json:bool(Val@4);
{string_value, Val@5} ->
gleam@json:string(Val@5);
{extension_value, Val@5} ->
gleam@json:string(Val@5)
end.
-file("src\\sparkleplug.gleam", 409).
-spec encode_data_set_value(
sparkleplug@sparkplug_b@payload@dataset:data_set_value()
) -> gleam@json:json().
encode_data_set_value(Data_set_value) ->
gleam@json:object(
[{<<"value"/utf8>>,
gleam@json:nullable(
erlang:element(2, Data_set_value),
fun encode_data_set_val/1
)}]
).
-file("src\\sparkleplug.gleam", 403).
-spec encode_row(sparkleplug@sparkplug_b@payload@dataset:row()) -> gleam@json:json().
encode_row(Row) ->
gleam@json:object(
[{<<"elements"/utf8>>,
gleam@json:array(
erlang:element(2, Row),
fun encode_data_set_value/1
)}]
).
-file("src\\sparkleplug.gleam", 394).
-spec encode_data_set(sparkleplug@sparkplug_b@payload@dataset:data_set()) -> gleam@json:json().
encode_data_set(Dataset) ->
gleam@json:object(
[{<<"num_of_columns"/utf8>>,
gleam@json:nullable(
erlang:element(2, Dataset),
fun gleam@json:int/1
)},
{<<"columns"/utf8>>,
gleam@json:array(
erlang:element(3, Dataset),
fun gleam@json:string/1
)},
{<<"types"/utf8>>,
gleam@json:array(
erlang:element(4, Dataset),
fun gleam@json:int/1
)},
{<<"rows"/utf8>>,
gleam@json:array(erlang:element(5, Dataset), fun encode_row/1)}]
).
-file("src\\sparkleplug.gleam", 436).
-spec encode_parameter(sparkleplug@sparkplug_b@payload@metric:parameter()) -> gleam@json:json().
encode_parameter(Parameter) ->
gleam@json:object(
[{<<"name"/utf8>>,
gleam@json:nullable(
erlang:element(2, Parameter),
fun gleam@json:string/1
)},
{<<"type"/utf8>>,
gleam@json:nullable(
erlang:element(3, Parameter),
fun gleam@json:string/1
)},
{<<"value"/utf8>>,
gleam@json:nullable(
erlang:element(4, Parameter),
fun gleam@json:string/1
)}]
).
-file("src\\sparkleplug.gleam", 444).
-spec encode_extension(
sparkleplug@sparkplug_b@payload@metric:metric_value_extension()
) -> gleam@json:json().
encode_extension(Extension) ->
gleam@json:object(
[{<<"value"/utf8>>, gleam@json:string(erlang:element(2, Extension))}]
).
-file("src\\sparkleplug.gleam", 426).
-spec encode_template(sparkleplug@sparkplug_b@payload@metric:template()) -> gleam@json:json().
encode_template(Template) ->
gleam@json:object(
[{<<"version"/utf8>>,
gleam@json:nullable(
erlang:element(2, Template),
fun gleam@json:string/1
)},
{<<"metrics"/utf8>>,
gleam@json:array(
erlang:element(3, Template),
fun metric_to_json/1
)},
{<<"parameters"/utf8>>,
gleam@json:array(
erlang:element(4, Template),
fun encode_parameter/1
)},
{<<"template_ref"/utf8>>,
gleam@json:nullable(
erlang:element(5, Template),
fun gleam@json:string/1
)},
{<<"is_definition"/utf8>>,
gleam@json:nullable(
erlang:element(6, Template),
fun gleam@json:bool/1
)}]
).
-file("src\\sparkleplug.gleam", 98).
-spec metric_to_json(sparkleplug@sparkplug_b@payload@metric:metric()) -> gleam@json:json().
metric_to_json(Metric) ->
Encode_nullable_bool = fun(Nullable_bool_field) ->
case Nullable_bool_field of
{some, Val} ->
gleam@json:bool(Val);
none ->
gleam@json:bool(false)
end
end,
Encode_nullable_string = fun(Nullable_bitarray_field) ->
case Nullable_bitarray_field of
{some, Val@1} ->
_pipe = Val@1,
gleam@json:string(_pipe);
none ->
_pipe@1 = <<""/utf8>>,
gleam@json:string(_pipe@1)
end
end,
gleam@json:object(
[{<<"name"/utf8>>,
gleam@json:nullable(
erlang:element(2, Metric),
fun gleam@json:string/1
)},
{<<"alias"/utf8>>,
gleam@json:nullable(
erlang:element(3, Metric),
fun gleam@json:int/1
)},
{<<"timestamp"/utf8>>,
gleam@json:nullable(
erlang:element(4, Metric),
fun gleam@json:int/1
)},
{<<"dataType"/utf8>>,
gleam@json:nullable(
erlang:element(5, Metric),
fun gleam@json:int/1
)},
{<<"is_historical"/utf8>>,
Encode_nullable_bool(erlang:element(6, Metric))},
{<<"is_transient"/utf8>>,
Encode_nullable_bool(erlang:element(7, Metric))},
{<<"is_null"/utf8>>,
Encode_nullable_bool(erlang:element(8, Metric))},
{<<"metadata"/utf8>>,
Encode_nullable_string(erlang:element(9, Metric))},
{<<"value"/utf8>>,
gleam@json:nullable(
erlang:element(10, Metric),
fun value_to_json/1
)}]
).
-file("src\\sparkleplug.gleam", 133).
-spec value_to_json(sparkleplug@sparkplug_b@payload@metric:value()) -> gleam@json:json().
value_to_json(Value) ->
case Value of
{int_value, Val} ->
gleam@json:int(Val);
{long_value, Val@1} ->
gleam@json:int(Val@1);
{float_value, Val@2} ->
gleam@json:float(Val@2);
{double_value, Val@3} ->
gleam@json:float(Val@3);
{boolean_value, Val@4} ->
gleam@json:bool(Val@4);
{string_value, Val@5} ->
gleam@json:string(Val@5);
{bytes_value, Val@6} ->
_pipe = gleam_stdlib:bit_array_base64_encode(Val@6, true),
gleam@json:string(_pipe);
{dataset_value, Val@7} ->
encode_data_set(Val@7);
{template_value, Val@8} ->
encode_template(Val@8);
{extension_value, Val@9} ->
encode_extension(Val@9);
{property_set_value, Val@10} ->
encode_property_set(Val@10);
{property_set_list_value, Val@11} ->
encode_property_set_list(Val@11)
end.
-file("src\\sparkleplug.gleam", 70).
?DOC(" Serialise a Payload into a JSON string.\n").
-spec sparkplug_payload_to_json_string(
sparkleplug@sparkplug_b@payload@payload:payload()
) -> binary().
sparkplug_payload_to_json_string(Payload) ->
Encode_nullable_string = fun(Nullable_bitarray_field) ->
case Nullable_bitarray_field of
{some, Val} ->
_pipe = Val,
gleam@json:string(_pipe);
none ->
_pipe@1 = <<""/utf8>>,
gleam@json:string(_pipe@1)
end
end,
_pipe@2 = gleam@json:object(
[{<<"timestamp"/utf8>>,
gleam@json:nullable(
erlang:element(2, Payload),
fun gleam@json:int/1
)},
{<<"metrics"/utf8>>,
gleam@json:array(
erlang:element(3, Payload),
fun metric_to_json/1
)},
{<<"seq"/utf8>>,
gleam@json:nullable(
erlang:element(4, Payload),
fun gleam@json:int/1
)},
{<<"uuid"/utf8>>,
Encode_nullable_string(erlang:element(5, Payload))},
{<<"body"/utf8>>,
Encode_nullable_string(erlang:element(6, Payload))}]
),
gleam@json:to_string(_pipe@2).
-file("src\\sparkleplug.gleam", 93).
?DOC(" Serialise a Metric into a JSON string.\n").
-spec metric_to_json_string(sparkleplug@sparkplug_b@payload@metric:metric()) -> binary().
metric_to_json_string(Metric) ->
_pipe = metric_to_json(Metric),
gleam@json:to_string(_pipe).
-file("src\\sparkleplug.gleam", 463).
-spec encode_prop_val(sparkleplug@sparkplug_b@payload@propertyset:value()) -> gleam@json:json().
encode_prop_val(Prop_val) ->
case Prop_val of
{int_value, Val} ->
gleam@json:int(Val);
{long_value, Val@1} ->
gleam@json:int(Val@1);
{float_value, Val@2} ->
gleam@json:float(Val@2);
{double_value, Val@3} ->
gleam@json:float(Val@3);
{boolean_value, Val@4} ->
gleam@json:bool(Val@4);
{string_value, Val@5} ->
gleam@json:string(Val@5);
{propertyset_value, Val@6} ->
encode_property_set(Val@6);
{propertysets_value, Val@7} ->
encode_property_set_list(Val@7);
{extension_value, Val@8} ->
gleam@json:string(Val@8)
end.
-file("src\\sparkleplug.gleam", 448).
-spec encode_property_set(
sparkleplug@sparkplug_b@payload@propertyset:property_set()
) -> gleam@json:json().
encode_property_set(Property_set) ->
gleam@json:object(
[{<<"keys"/utf8>>,
gleam@json:array(
erlang:element(2, Property_set),
fun gleam@json:string/1
)},
{<<"values"/utf8>>,
gleam@json:array(
erlang:element(3, Property_set),
fun encode_property_value/1
)}]
).
-file("src\\sparkleplug.gleam", 455).
-spec encode_property_value(
sparkleplug@sparkplug_b@payload@propertyset:property_value()
) -> gleam@json:json().
encode_property_value(Property_value) ->
gleam@json:object(
[{<<"type"/utf8>>,
gleam@json:nullable(
erlang:element(2, Property_value),
fun gleam@json:int/1
)},
{<<"is_null"/utf8>>,
gleam@json:nullable(
erlang:element(3, Property_value),
fun gleam@json:bool/1
)},
{<<"value"/utf8>>,
gleam@json:nullable(
erlang:element(4, Property_value),
fun encode_prop_val/1
)}]
).
-file("src\\sparkleplug.gleam", 477).
-spec encode_property_set_list(
sparkleplug@sparkplug_b@payload@propertyset:property_set_list()
) -> gleam@json:json().
encode_property_set_list(Property_set_list) ->
gleam@json:object(
[{<<"propertyset"/utf8>>,
gleam@json:array(
erlang:element(2, Property_set_list),
fun encode_property_set/1
)}]
).
-file("src\\sparkleplug.gleam", 332).
-spec template_decoder() -> gleam@dynamic@decode:decoder(sparkleplug@sparkplug_b@payload@metric:template()).
template_decoder() ->
gleam@dynamic@decode:field(
<<"version"/utf8>>,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Maybe_version) ->
gleam@dynamic@decode:field(
<<"metrics"/utf8>>,
gleam@dynamic@decode:list(metric_decoder()),
fun(Metrics) ->
gleam@dynamic@decode:field(
<<"parameters"/utf8>>,
gleam@dynamic@decode:list(parameter_decoder()),
fun(Parameters) ->
gleam@dynamic@decode:field(
<<"template_ref"/utf8>>,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Maybe_template_ref) ->
gleam@dynamic@decode:field(
<<"is_definition"/utf8>>,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_bool/1}
),
fun(Maybe_is_definition) ->
gleam@dynamic@decode:success(
{template,
Maybe_version,
Metrics,
Parameters,
Maybe_template_ref,
Maybe_is_definition}
)
end
)
end
)
end
)
end
)
end
).
-file("src\\sparkleplug.gleam", 187).
-spec metric_decoder() -> gleam@dynamic@decode:decoder(sparkleplug@sparkplug_b@payload@metric:metric()).
metric_decoder() ->
gleam@dynamic@decode:optional_field(
<<"name"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Maybe_name) ->
gleam@dynamic@decode:optional_field(
<<"alias"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_int/1}
),
fun(Maybe_alias) ->
gleam@dynamic@decode:optional_field(
<<"timestamp"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_int/1}
),
fun(Maybe_timestamp) ->
gleam@dynamic@decode:optional_field(
<<"dataType"/utf8>>,
bytes,
datatype_decoder(),
fun(Datatype) ->
gleam@dynamic@decode:optional_field(
<<"is_historical"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_bool/1}
),
fun(Maybe_is_historical) ->
gleam@dynamic@decode:optional_field(
<<"is_transient"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_bool/1}
),
fun(Maybe_is_transient) ->
gleam@dynamic@decode:optional_field(
<<"is_null"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_bool/1}
),
fun(Maybe_is_null) ->
gleam@dynamic@decode:optional_field(
<<"metadata"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(
Maybe_metadata
) ->
gleam@dynamic@decode:field(
<<"value"/utf8>>,
gleam@dynamic@decode:optional(
value_decoder(
Datatype
)
),
fun(
Maybe_value
) ->
gleam@dynamic@decode:success(
{metric,
Maybe_name,
Maybe_alias,
Maybe_timestamp,
{some,
begin
_pipe = Datatype,
sparkleplug@sparkplug_b@payload@datatype:to_int(
_pipe
)
end},
Maybe_is_historical,
Maybe_is_transient,
Maybe_is_null,
Maybe_metadata,
Maybe_value}
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
).
-file("src\\sparkleplug.gleam", 257).
-spec value_decoder(sparkleplug@sparkplug_b@payload@datatype:data_type()) -> gleam@dynamic@decode:decoder(sparkleplug@sparkplug_b@payload@metric:value()).
value_decoder(Datatype) ->
case Datatype of
unknown ->
_pipe = {decoder, fun gleam@dynamic@decode:decode_bit_array/1},
gleam@dynamic@decode:map(
_pipe,
fun(Field@0) -> {bytes_value, Field@0} end
);
int8 ->
_pipe@1 = {decoder, fun gleam@dynamic@decode:decode_int/1},
gleam@dynamic@decode:map(
_pipe@1,
fun(Field@0) -> {int_value, Field@0} end
);
int16 ->
_pipe@1 = {decoder, fun gleam@dynamic@decode:decode_int/1},
gleam@dynamic@decode:map(
_pipe@1,
fun(Field@0) -> {int_value, Field@0} end
);
int32 ->
_pipe@1 = {decoder, fun gleam@dynamic@decode:decode_int/1},
gleam@dynamic@decode:map(
_pipe@1,
fun(Field@0) -> {int_value, Field@0} end
);
int64 ->
_pipe@1 = {decoder, fun gleam@dynamic@decode:decode_int/1},
gleam@dynamic@decode:map(
_pipe@1,
fun(Field@0) -> {int_value, Field@0} end
);
u_int8 ->
_pipe@1 = {decoder, fun gleam@dynamic@decode:decode_int/1},
gleam@dynamic@decode:map(
_pipe@1,
fun(Field@0) -> {int_value, Field@0} end
);
u_int16 ->
_pipe@1 = {decoder, fun gleam@dynamic@decode:decode_int/1},
gleam@dynamic@decode:map(
_pipe@1,
fun(Field@0) -> {int_value, Field@0} end
);
u_int32 ->
_pipe@1 = {decoder, fun gleam@dynamic@decode:decode_int/1},
gleam@dynamic@decode:map(
_pipe@1,
fun(Field@0) -> {int_value, Field@0} end
);
u_int64 ->
_pipe@1 = {decoder, fun gleam@dynamic@decode:decode_int/1},
gleam@dynamic@decode:map(
_pipe@1,
fun(Field@0) -> {int_value, Field@0} end
);
float ->
_pipe@2 = {decoder, fun gleam@dynamic@decode:decode_float/1},
gleam@dynamic@decode:map(
_pipe@2,
fun(Field@0) -> {float_value, Field@0} end
);
double ->
_pipe@2 = {decoder, fun gleam@dynamic@decode:decode_float/1},
gleam@dynamic@decode:map(
_pipe@2,
fun(Field@0) -> {float_value, Field@0} end
);
boolean ->
_pipe@3 = {decoder, fun gleam@dynamic@decode:decode_bool/1},
gleam@dynamic@decode:map(
_pipe@3,
fun(Field@0) -> {boolean_value, Field@0} end
);
string ->
_pipe@4 = {decoder, fun gleam@dynamic@decode:decode_string/1},
gleam@dynamic@decode:map(
_pipe@4,
fun(Field@0) -> {string_value, Field@0} end
);
date_time ->
_pipe@5 = {decoder, fun gleam@dynamic@decode:decode_int/1},
gleam@dynamic@decode:map(
_pipe@5,
fun(Field@0) -> {int_value, Field@0} end
);
text ->
_pipe@6 = {decoder, fun gleam@dynamic@decode:decode_string/1},
gleam@dynamic@decode:map(
_pipe@6,
fun(Field@0) -> {string_value, Field@0} end
);
uuid ->
_pipe@7 = {decoder, fun gleam@dynamic@decode:decode_string/1},
gleam@dynamic@decode:map(
_pipe@7,
fun(Field@0) -> {string_value, Field@0} end
);
data_set ->
_pipe@8 = data_set_decoder(),
gleam@dynamic@decode:map(
_pipe@8,
fun(Field@0) -> {dataset_value, Field@0} end
);
bytes ->
_pipe@9 = {decoder, fun gleam@dynamic@decode:decode_bit_array/1},
gleam@dynamic@decode:map(
_pipe@9,
fun(Field@0) -> {bytes_value, Field@0} end
);
file ->
_pipe@9 = {decoder, fun gleam@dynamic@decode:decode_bit_array/1},
gleam@dynamic@decode:map(
_pipe@9,
fun(Field@0) -> {bytes_value, Field@0} end
);
template ->
_pipe@10 = template_decoder(),
gleam@dynamic@decode:map(
_pipe@10,
fun(Field@0) -> {template_value, Field@0} end
);
property_set ->
_pipe@11 = property_set_decoder(),
gleam@dynamic@decode:map(
_pipe@11,
fun(Field@0) -> {property_set_value, Field@0} end
);
property_set_list ->
_pipe@12 = property_set_list_decoder(),
gleam@dynamic@decode:map(
_pipe@12,
fun(Field@0) -> {property_set_list_value, Field@0} end
);
int8_array ->
_pipe@13 = {decoder, fun gleam@dynamic@decode:decode_bit_array/1},
gleam@dynamic@decode:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
int16_array ->
_pipe@13 = {decoder, fun gleam@dynamic@decode:decode_bit_array/1},
gleam@dynamic@decode:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
int32_array ->
_pipe@13 = {decoder, fun gleam@dynamic@decode:decode_bit_array/1},
gleam@dynamic@decode:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
int64_array ->
_pipe@13 = {decoder, fun gleam@dynamic@decode:decode_bit_array/1},
gleam@dynamic@decode:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
u_int8_array ->
_pipe@13 = {decoder, fun gleam@dynamic@decode:decode_bit_array/1},
gleam@dynamic@decode:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
u_int16_array ->
_pipe@13 = {decoder, fun gleam@dynamic@decode:decode_bit_array/1},
gleam@dynamic@decode:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
u_int32_array ->
_pipe@13 = {decoder, fun gleam@dynamic@decode:decode_bit_array/1},
gleam@dynamic@decode:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
u_int64_array ->
_pipe@13 = {decoder, fun gleam@dynamic@decode:decode_bit_array/1},
gleam@dynamic@decode:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
float_array ->
_pipe@13 = {decoder, fun gleam@dynamic@decode:decode_bit_array/1},
gleam@dynamic@decode:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
double_array ->
_pipe@13 = {decoder, fun gleam@dynamic@decode:decode_bit_array/1},
gleam@dynamic@decode:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
boolean_array ->
_pipe@13 = {decoder, fun gleam@dynamic@decode:decode_bit_array/1},
gleam@dynamic@decode:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
string_array ->
_pipe@13 = {decoder, fun gleam@dynamic@decode:decode_bit_array/1},
gleam@dynamic@decode:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
date_time_array ->
_pipe@13 = {decoder, fun gleam@dynamic@decode:decode_bit_array/1},
gleam@dynamic@decode:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
)
end.
-file("src\\sparkleplug.gleam", 63).
?DOC(
" Attempts to convert a string representation of a Sparkplug B metric into a Metric type.\n"
"\n"
" Returns an error if the string doesn't hold a valid representation.\n"
).
-spec string_to_metric(binary()) -> {ok,
sparkleplug@sparkplug_b@payload@metric:metric()} |
{error, gleam@json:decode_error()}.
string_to_metric(Metric_string) ->
gleam@json:parse(Metric_string, metric_decoder()).
-file("src\\sparkleplug.gleam", 150).
-spec json_to_sparkplug_payload(binary()) -> {ok,
sparkleplug@sparkplug_b@payload@payload:payload()} |
{error, gleam@json:decode_error()}.
json_to_sparkplug_payload(Json_string) ->
Sparkplug_decoder = begin
gleam@dynamic@decode:optional_field(
<<"timestamp"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_int/1}
),
fun(Maybe_timestamp) ->
gleam@dynamic@decode:field(
<<"metrics"/utf8>>,
gleam@dynamic@decode:list(metric_decoder()),
fun(Metrics) ->
gleam@dynamic@decode:optional_field(
<<"seq"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_int/1}
),
fun(Maybe_seq) ->
gleam@dynamic@decode:optional_field(
<<"uuid"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Maybe_uuid) ->
gleam@dynamic@decode:optional_field(
<<"body"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Maybe_body) ->
gleam@dynamic@decode:success(
{payload,
Maybe_timestamp,
Metrics,
Maybe_seq,
Maybe_uuid,
Maybe_body}
)
end
)
end
)
end
)
end
)
end
)
end,
gleam@json:parse(Json_string, Sparkplug_decoder).
-file("src\\sparkleplug.gleam", 27).
?DOC(
" Attempts to convert a string representation of a Sparkplug B payload into a Payload type.\n"
"\n"
" Returns an error if the string doesn't hold a valid representation.\n"
).
-spec string_to_sparkplug_payload(binary()) -> {ok,
sparkleplug@sparkplug_b@payload@payload:payload()} |
{error, binary()}.
string_to_sparkplug_payload(Payload_string) ->
_pipe = json_to_sparkplug_payload(Payload_string),
gleam@result:map_error(_pipe, fun(Error_val) -> case Error_val of
unexpected_end_of_input ->
<<"Unexpected end of input"/utf8>>;
{unexpected_byte, Message} ->
<<"Unexpected byte: "/utf8, Message/binary>>;
{unexpected_format, Inner_errors} ->
case gleam@list:first(Inner_errors) of
{ok, Error} ->
<<<<<<"Unexpected format: Expected "/utf8,
(erlang:element(2, Error))/binary>>/binary,
"; found "/utf8>>/binary,
(erlang:element(3, Error))/binary>>;
{error, _} ->
<<"Unexpected format: No inner errors"/utf8>>
end;
{unexpected_sequence, Message@1} ->
<<"Unexpected sequence: "/utf8, Message@1/binary>>;
{unable_to_decode, Inner_errors@1} ->
case gleam@list:first(Inner_errors@1) of
{ok, Error@1} ->
<<<<<<"Unable to decode: Expected "/utf8,
(erlang:element(2, Error@1))/binary>>/binary,
"; found "/utf8>>/binary,
(erlang:element(3, Error@1))/binary>>;
{error, _} ->
<<"Unable to decode. No inner errors"/utf8>>
end
end end).
-file("src\\sparkleplug.gleam", 16).
?DOC(
" Attempts to convert a bit array representation of a Sparkplug B payload into a Payload type.\n"
"\n"
" Returns an error if the bit array doesn't hold a valid representation.\n"
).
-spec bit_array_to_sparkplug_payload(bitstring()) -> {ok,
sparkleplug@sparkplug_b@payload@payload:payload()} |
{error, binary()}.
bit_array_to_sparkplug_payload(Payload_bit_array) ->
_pipe = gleam@bit_array:to_string(Payload_bit_array),
_pipe@1 = gleam@result:map_error(
_pipe,
fun(_) -> <<"Couldn't convert the bit array into a string."/utf8>> end
),
gleam@result:'try'(_pipe@1, fun string_to_sparkplug_payload/1).