Current section
Files
Jump to
Current section
Files
src/aarondb@rule_serde.erl
-module(aarondb@rule_serde).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/aarondb/rule_serde.gleam").
-export([serialize/1, deserialize/1]).
-file("src/aarondb/rule_serde.gleam", 11).
-spec serialize(aarondb@shared@ast:rule()) -> binary().
serialize(Rule) ->
Bits = erlang:term_to_binary(Rule),
gleam_stdlib:base64_encode(Bits, false).
-file("src/aarondb/rule_serde.gleam", 16).
-spec deserialize(binary()) -> {ok, aarondb@shared@ast:rule()} | {error, nil}.
deserialize(S) ->
gleam@result:'try'(
gleam@bit_array:base64_decode(S),
fun(Bits) -> {ok, erlang:binary_to_term(Bits)} end
).