Add forgotten exports, expand(Types) function
All checks were successful
Gajumaru Serialization Tests / tests (push) Successful in 49m55s
All checks were successful
Gajumaru Serialization Tests / tests (push) Successful in 49m55s
This commit is contained in:
parent
b9a51acf55
commit
f996253e6b
@ -13,12 +13,15 @@
|
||||
, decode_typed/3 %% (Type, RLP, Types) -> Term
|
||||
, decode_typed/4 ]). %% (Type, RLP, Vsn, Types) -> Term
|
||||
|
||||
-export([ serialize/1
|
||||
, serialize/2
|
||||
, serialize_typed/2
|
||||
, serialize_typed/3
|
||||
, deserialize/1
|
||||
, deserialize/2 ]).
|
||||
-export([ serialize/1 %% (Term) -> Bin
|
||||
, serialize/2 %% (Term, Types) -> Bin
|
||||
, serialize/3 %% (Term, Vsn, Types) -> Bin
|
||||
, serialize_typed/2 %% (Type, Term) -> Bin
|
||||
, serialize_typed/3 %% (Type, Term, Types) -> Bin
|
||||
, serialize_typed/4 %% (Type, Term, Vsn, Types) -> Bin
|
||||
, deserialize/1 %% (Bin) -> Term
|
||||
, deserialize/2 %% (Bin, Types) -> Term
|
||||
, deserialize/3 ]). %% (Bin, Vsn, Types) -> Term
|
||||
|
||||
%% register a type schema, inspect existing schema
|
||||
-export([ register_types/1
|
||||
|
@ -1,6 +1,8 @@
|
||||
-module(gmser_dyn_types).
|
||||
|
||||
-export([ from_list/2 ]).
|
||||
-export([ add_type/4
|
||||
, from_list/2
|
||||
, expand/1 ]).
|
||||
-export([ next_code/1 ]).
|
||||
|
||||
next_code(#{codes := Codes}) ->
|
||||
@ -12,6 +14,18 @@ add_type(Tag, Code, Template, Types) ->
|
||||
from_list(L, Types) ->
|
||||
lists:foldl(fun elem_to_type/2, Types, L).
|
||||
|
||||
expand(#{vsn := V, templates := Templates0} = Types) ->
|
||||
Templates =
|
||||
maps:map(
|
||||
fun(_, F) when is_function(F, 0) ->
|
||||
F();
|
||||
(_, F) when is_function(F, 1) ->
|
||||
F(V);
|
||||
(_, T) ->
|
||||
T
|
||||
end, Templates0),
|
||||
Types#{templates := Templates}.
|
||||
|
||||
elem_to_type({Tag, Code, Template}, Acc) when is_atom(Tag), is_integer(Code) ->
|
||||
#{codes := Codes, rev := Rev, templates := Temps} = Acc,
|
||||
case {is_map_key(Tag, Rev), is_map_key(Code, Codes)} of
|
||||
|
Loading…
x
Reference in New Issue
Block a user