Add unsafe_encode/2 to forego size check
All checks were successful
Gajumaru Serialization Tests / tests (push) Successful in -2m49s

This commit is contained in:
Ulf Wiger 2026-03-25 22:09:33 +01:00
parent 4f97dd1bd1
commit 4cc6adee2e
2 changed files with 4 additions and 6 deletions

View File

@ -16,9 +16,7 @@
-export([encode_keypair/1,
safe_decode_keypair/1]).
-ifdef(TEST).
-export([encode_/2]). %% Encode without size checks
-endif.
-export([unsafe_encode/2]). %% Encode without size checks
-export_type([encoded/0,
known_type/0]).
@ -114,12 +112,12 @@ encode(id_hash, Payload) ->
encode(Type, Payload) ->
case type_size_check(Type, Payload) of
ok ->
encode_(Type, Payload);
unsafe_encode(Type, Payload);
{error, Reason} ->
erlang:error(Reason)
end.
encode_(Type, Payload) ->
unsafe_encode(Type, Payload) ->
Pfx = type2pfx(Type),
Enc = case type2enc(Type) of
?BASE58 -> base58_check(Payload);

View File

@ -91,7 +91,7 @@ encode_decode_test_(Types) ->
fun(S) ->
Key = <<42:S/unit:8>>,
?assertError(incorrect_size, ?TEST_MODULE:encode(Type, Key)),
EncodedKey = ?TEST_MODULE:encode_(Type, Key), %% no size check
EncodedKey = ?TEST_MODULE:unsafe_encode(Type, Key), %% no size check
{error, invalid_encoding} = ?TEST_MODULE:safe_decode(Type, EncodedKey)
end,
CheckIllegalSize(0),