Packages

A Gleam library for working with the Sparkplug IoT protocol.

Current section

Files

Jump to
sparkleplug src sparkleplug.erl
Raw

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]).
-file("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 276).
-spec data_value(gleam@dynamic:dynamic_()) -> {ok,
sparkleplug@sparkplug_b@payload@dataset:value()} |
{error, list(gleam@dynamic:decode_error())}.
data_value(Data) ->
(gleam@dynamic:any([fun(Val) -> _pipe = gleam@dynamic:int(Val),
gleam@result:map(
_pipe,
fun(Field@0) -> {int_value, Field@0} end
) end, fun(Val@1) -> _pipe@1 = gleam@dynamic:float(Val@1),
gleam@result:map(
_pipe@1,
fun(Field@0) -> {float_value, Field@0} end
) end, fun(Val@2) -> _pipe@2 = gleam@dynamic:bool(Val@2),
gleam@result:map(
_pipe@2,
fun(Field@0) -> {boolean_value, Field@0} end
) end, fun(Val@3) -> _pipe@3 = gleam@dynamic:string(Val@3),
gleam@result:map(
_pipe@3,
fun(Field@0) -> {string_value, Field@0} end
) end]))(Data).
-file("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 267).
-spec data_set_value(gleam@dynamic:dynamic_()) -> {ok,
sparkleplug@sparkplug_b@payload@dataset:data_set_value()} |
{error, list(gleam@dynamic:decode_error())}.
data_set_value(Data) ->
(gleam@dynamic:decode1(
fun(Field@0) -> {data_set_value, Field@0} end,
gleam@dynamic:optional_field(<<"value"/utf8>>, fun data_value/1)
))(Data).
-file("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 260).
-spec row(gleam@dynamic:dynamic_()) -> {ok,
sparkleplug@sparkplug_b@payload@dataset:row()} |
{error, list(gleam@dynamic:decode_error())}.
row(Data) ->
(gleam@dynamic:decode1(
fun(Field@0) -> {row, Field@0} end,
gleam@dynamic:field(
<<"elements"/utf8>>,
gleam@dynamic:list(fun data_set_value/1)
)
))(Data).
-file("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 248).
-spec data_set(gleam@dynamic:dynamic_()) -> {ok,
sparkleplug@sparkplug_b@payload@dataset:data_set()} |
{error, list(gleam@dynamic:decode_error())}.
data_set(Data) ->
(gleam@dynamic:decode4(
fun(Field@0, Field@1, Field@2, Field@3) -> {data_set, Field@0, Field@1, Field@2, Field@3} end,
gleam@dynamic:optional_field(
<<"num_of_columns"/utf8>>,
fun gleam@dynamic:int/1
),
gleam@dynamic:field(
<<"columns"/utf8>>,
gleam@dynamic:list(fun gleam@dynamic:string/1)
),
gleam@dynamic:field(
<<"types"/utf8>>,
gleam@dynamic:list(fun gleam@dynamic:int/1)
),
gleam@dynamic:field(<<"rows"/utf8>>, gleam@dynamic:list(fun row/1))
))(Data).
-file("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 332).
-spec prop_val(gleam@dynamic:dynamic_()) -> {ok,
sparkleplug@sparkplug_b@payload@propertyset:value()} |
{error, list(gleam@dynamic:decode_error())}.
prop_val(Data) ->
(gleam@dynamic:any([fun(Val) -> _pipe = gleam@dynamic:int(Val),
gleam@result:map(
_pipe,
fun(Field@0) -> {int_value, Field@0} end
) end, fun(Val@1) -> _pipe@1 = gleam@dynamic:float(Val@1),
gleam@result:map(
_pipe@1,
fun(Field@0) -> {float_value, Field@0} end
) end, fun(Val@2) -> _pipe@2 = gleam@dynamic:bool(Val@2),
gleam@result:map(
_pipe@2,
fun(Field@0) -> {boolean_value, Field@0} end
) end, fun(Val@3) -> _pipe@3 = gleam@dynamic:string(Val@3),
gleam@result:map(
_pipe@3,
fun(Field@0) -> {string_value, Field@0} end
) end]))(Data).
-file("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 321).
-spec property_value(gleam@dynamic:dynamic_()) -> {ok,
sparkleplug@sparkplug_b@payload@propertyset:property_value()} |
{error, list(gleam@dynamic:decode_error())}.
property_value(Data) ->
(gleam@dynamic:decode3(
fun(Field@0, Field@1, Field@2) -> {property_value, Field@0, Field@1, Field@2} end,
gleam@dynamic:optional_field(<<"type"/utf8>>, fun gleam@dynamic:int/1),
gleam@dynamic:optional_field(
<<"is_null"/utf8>>,
fun gleam@dynamic:bool/1
),
gleam@dynamic:optional_field(<<"value"/utf8>>, fun prop_val/1)
))(Data).
-file("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 311).
-spec property_set(gleam@dynamic:dynamic_()) -> {ok,
sparkleplug@sparkplug_b@payload@propertyset:property_set()} |
{error, list(gleam@dynamic:decode_error())}.
property_set(Data) ->
(gleam@dynamic:decode2(
fun(Field@0, Field@1) -> {property_set, Field@0, Field@1} end,
gleam@dynamic:field(
<<"keys"/utf8>>,
gleam@dynamic:list(fun gleam@dynamic:string/1)
),
gleam@dynamic:field(
<<"values"/utf8>>,
gleam@dynamic:list(fun property_value/1)
)
))(Data).
-file("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 343).
-spec property_set_list(gleam@dynamic:dynamic_()) -> {ok,
sparkleplug@sparkplug_b@payload@propertyset:property_set_list()} |
{error, list(gleam@dynamic:decode_error())}.
property_set_list(Data) ->
(gleam@dynamic:decode1(
fun(Field@0) -> {property_set_list, Field@0} end,
gleam@dynamic:field(
<<"propertyset"/utf8>>,
gleam@dynamic:list(fun property_set/1)
)
))(Data).
-file("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 373).
-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("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 367).
-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("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 361).
-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("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 352).
-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("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 394).
-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("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 402).
-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("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 384).
-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("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 89).
-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("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 124).
-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("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 61).
-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("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 84).
-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("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 421).
-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("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 406).
-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("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 413).
-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("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 435).
-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("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 202).
-spec value(
gleam@dynamic:dynamic_(),
sparkleplug@sparkplug_b@payload@datatype:data_type()
) -> {ok, sparkleplug@sparkplug_b@payload@metric:value()} |
{error, list(gleam@dynamic:decode_error())}.
value(Data, Data_type) ->
case Data_type of
unknown ->
_pipe = gleam@dynamic:bit_array(Data),
gleam@result:map(_pipe, fun(Field@0) -> {bytes_value, Field@0} end);
int8 ->
_pipe@1 = gleam@dynamic:int(Data),
gleam@result:map(_pipe@1, fun(Field@0) -> {int_value, Field@0} end);
int16 ->
_pipe@1 = gleam@dynamic:int(Data),
gleam@result:map(_pipe@1, fun(Field@0) -> {int_value, Field@0} end);
int32 ->
_pipe@1 = gleam@dynamic:int(Data),
gleam@result:map(_pipe@1, fun(Field@0) -> {int_value, Field@0} end);
int64 ->
_pipe@1 = gleam@dynamic:int(Data),
gleam@result:map(_pipe@1, fun(Field@0) -> {int_value, Field@0} end);
u_int8 ->
_pipe@1 = gleam@dynamic:int(Data),
gleam@result:map(_pipe@1, fun(Field@0) -> {int_value, Field@0} end);
u_int16 ->
_pipe@1 = gleam@dynamic:int(Data),
gleam@result:map(_pipe@1, fun(Field@0) -> {int_value, Field@0} end);
u_int32 ->
_pipe@1 = gleam@dynamic:int(Data),
gleam@result:map(_pipe@1, fun(Field@0) -> {int_value, Field@0} end);
u_int64 ->
_pipe@1 = gleam@dynamic:int(Data),
gleam@result:map(_pipe@1, fun(Field@0) -> {int_value, Field@0} end);
float ->
_pipe@2 = gleam@dynamic:float(Data),
gleam@result:map(
_pipe@2,
fun(Field@0) -> {float_value, Field@0} end
);
double ->
_pipe@2 = gleam@dynamic:float(Data),
gleam@result:map(
_pipe@2,
fun(Field@0) -> {float_value, Field@0} end
);
boolean ->
_pipe@3 = gleam@dynamic:bool(Data),
gleam@result:map(
_pipe@3,
fun(Field@0) -> {boolean_value, Field@0} end
);
string ->
_pipe@4 = gleam@dynamic:string(Data),
gleam@result:map(
_pipe@4,
fun(Field@0) -> {string_value, Field@0} end
);
date_time ->
_pipe@5 = gleam@dynamic:int(Data),
gleam@result:map(_pipe@5, fun(Field@0) -> {int_value, Field@0} end);
text ->
_pipe@6 = gleam@dynamic:string(Data),
gleam@result:map(
_pipe@6,
fun(Field@0) -> {string_value, Field@0} end
);
uuid ->
_pipe@7 = gleam@dynamic:string(Data),
gleam@result:map(
_pipe@7,
fun(Field@0) -> {string_value, Field@0} end
);
data_set ->
_pipe@8 = data_set(Data),
gleam@result:map(
_pipe@8,
fun(Field@0) -> {dataset_value, Field@0} end
);
bytes ->
_pipe@9 = gleam@dynamic:bit_array(Data),
gleam@result:map(
_pipe@9,
fun(Field@0) -> {bytes_value, Field@0} end
);
file ->
_pipe@9 = gleam@dynamic:bit_array(Data),
gleam@result:map(
_pipe@9,
fun(Field@0) -> {bytes_value, Field@0} end
);
template ->
_pipe@10 = template(Data),
gleam@result:map(
_pipe@10,
fun(Field@0) -> {template_value, Field@0} end
);
property_set ->
_pipe@11 = property_set(Data),
gleam@result:map(
_pipe@11,
fun(Field@0) -> {property_set_value, Field@0} end
);
property_set_list ->
_pipe@12 = property_set_list(Data),
gleam@result:map(
_pipe@12,
fun(Field@0) -> {property_set_list_value, Field@0} end
);
int8_array ->
_pipe@13 = gleam@dynamic:bit_array(Data),
gleam@result:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
int16_array ->
_pipe@13 = gleam@dynamic:bit_array(Data),
gleam@result:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
int32_array ->
_pipe@13 = gleam@dynamic:bit_array(Data),
gleam@result:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
int64_array ->
_pipe@13 = gleam@dynamic:bit_array(Data),
gleam@result:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
u_int8_array ->
_pipe@13 = gleam@dynamic:bit_array(Data),
gleam@result:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
u_int16_array ->
_pipe@13 = gleam@dynamic:bit_array(Data),
gleam@result:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
u_int32_array ->
_pipe@13 = gleam@dynamic:bit_array(Data),
gleam@result:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
u_int64_array ->
_pipe@13 = gleam@dynamic:bit_array(Data),
gleam@result:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
float_array ->
_pipe@13 = gleam@dynamic:bit_array(Data),
gleam@result:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
double_array ->
_pipe@13 = gleam@dynamic:bit_array(Data),
gleam@result:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
boolean_array ->
_pipe@13 = gleam@dynamic:bit_array(Data),
gleam@result:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
string_array ->
_pipe@13 = gleam@dynamic:bit_array(Data),
gleam@result:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
);
date_time_array ->
_pipe@13 = gleam@dynamic:bit_array(Data),
gleam@result:map(
_pipe@13,
fun(Field@0) -> {bytes_value, Field@0} end
)
end.
-file("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 157).
-spec metric(gleam@dynamic:dynamic_()) -> {ok,
sparkleplug@sparkplug_b@payload@metric:metric()} |
{error, list(gleam@dynamic:decode_error())}.
metric(Data) ->
Metric_datatype = (case (gleam@dynamic:field(
<<"dataType"/utf8>>,
fun gleam@dynamic:string/1
))(Data) of
{ok, Str} ->
_pipe = sparkleplug@sparkplug_b@payload@datatype:from_string(Str),
gleam@result:unwrap(_pipe, bytes);
{error, _} ->
_pipe@1 = (gleam@dynamic:field(
<<"dataType"/utf8>>,
fun gleam@dynamic:int/1
))(Data),
_pipe@2 = gleam@result:unwrap(_pipe@1, 17),
_pipe@3 = sparkleplug@sparkplug_b@payload@datatype:from_int(_pipe@2),
gleam@result:unwrap(_pipe@3, bytes)
end),
(gleam@dynamic:decode9(
fun(Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6, Field@7, Field@8) -> {metric, Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6, Field@7, Field@8} end,
gleam@dynamic:optional_field(
<<"name"/utf8>>,
fun gleam@dynamic:string/1
),
gleam@dynamic:optional_field(<<"alias"/utf8>>, fun gleam@dynamic:int/1),
gleam@dynamic:optional_field(
<<"timestamp"/utf8>>,
fun gleam@dynamic:int/1
),
gleam@dynamic:optional_field(
<<"dataType"/utf8>>,
fun(Data@1) -> case gleam@dynamic:string(Data@1) of
{ok, Str@1} ->
{ok,
begin
_pipe@4 = sparkleplug@sparkplug_b@payload@datatype:from_string(
Str@1
),
_pipe@5 = gleam@result:map(
_pipe@4,
fun sparkleplug@sparkplug_b@payload@datatype:to_int/1
),
gleam@result:unwrap(_pipe@5, 17)
end};
{error, _} ->
gleam@dynamic:int(Data@1)
end end
),
gleam@dynamic:optional_field(
<<"is_historical"/utf8>>,
fun gleam@dynamic:bool/1
),
gleam@dynamic:optional_field(
<<"is_transient"/utf8>>,
fun gleam@dynamic:bool/1
),
gleam@dynamic:optional_field(
<<"is_null"/utf8>>,
fun gleam@dynamic:bool/1
),
gleam@dynamic:optional_field(
<<"metadata"/utf8>>,
fun gleam@dynamic:string/1
),
gleam@dynamic:optional_field(
<<"value"/utf8>>,
fun(Data@2) -> value(Data@2, Metric_datatype) end
)
))(Data).
-file("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 54).
-spec string_to_metric(binary()) -> {ok,
sparkleplug@sparkplug_b@payload@metric:metric()} |
{error, gleam@json:decode_error()}.
string_to_metric(Metric_string) ->
gleam@json:decode(Metric_string, fun metric/1).
-file("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 141).
-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 = gleam@dynamic:decode5(
fun(Field@0, Field@1, Field@2, Field@3, Field@4) -> {payload, Field@0, Field@1, Field@2, Field@3, Field@4} end,
gleam@dynamic:optional_field(
<<"timestamp"/utf8>>,
fun gleam@dynamic:int/1
),
gleam@dynamic:field(
<<"metrics"/utf8>>,
gleam@dynamic:list(fun metric/1)
),
gleam@dynamic:optional_field(<<"seq"/utf8>>, fun gleam@dynamic:int/1),
gleam@dynamic:optional_field(
<<"uuid"/utf8>>,
fun gleam@dynamic:string/1
),
gleam@dynamic:optional_field(
<<"body"/utf8>>,
fun gleam@dynamic:string/1
)
),
gleam@json:decode(Json_string, Sparkplug_decoder).
-file("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 27).
-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} ->
Maybe_first_error = gleam@list:first(Inner_errors),
case Maybe_first_error 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>>
end end).
-file("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 16).
-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).
-file("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 300).
-spec parameter(gleam@dynamic:dynamic_()) -> {ok,
sparkleplug@sparkplug_b@payload@metric:parameter()} |
{error, list(gleam@dynamic:decode_error())}.
parameter(Data) ->
(gleam@dynamic:decode3(
fun(Field@0, Field@1, Field@2) -> {parameter, Field@0, Field@1, Field@2} end,
gleam@dynamic:optional_field(
<<"name"/utf8>>,
fun gleam@dynamic:string/1
),
gleam@dynamic:optional_field(
<<"type"/utf8>>,
fun gleam@dynamic:string/1
),
gleam@dynamic:optional_field(
<<"value"/utf8>>,
fun gleam@dynamic:string/1
)
))(Data).
-file("C:\\Users\\kavan\\Documents\\GitHub\\sparkleplug\\src\\sparkleplug.gleam", 287).
-spec template(gleam@dynamic:dynamic_()) -> {ok,
sparkleplug@sparkplug_b@payload@metric:template()} |
{error, list(gleam@dynamic:decode_error())}.
template(Data) ->
(gleam@dynamic:decode5(
fun(Field@0, Field@1, Field@2, Field@3, Field@4) -> {template, Field@0, Field@1, Field@2, Field@3, Field@4} end,
gleam@dynamic:optional_field(
<<"version"/utf8>>,
fun gleam@dynamic:string/1
),
gleam@dynamic:field(
<<"metrics"/utf8>>,
gleam@dynamic:list(fun metric/1)
),
gleam@dynamic:field(
<<"parameters"/utf8>>,
gleam@dynamic:list(fun parameter/1)
),
gleam@dynamic:optional_field(
<<"template_ref"/utf8>>,
fun gleam@dynamic:string/1
),
gleam@dynamic:optional_field(
<<"is_definition"/utf8>>,
fun gleam@dynamic:bool/1
)
))(Data).