Compare commits

...

1 Commits

Author SHA1 Message Date
cb26dafd15 WIP 2026-01-08 16:10:15 +09:00

View File

@ -1943,6 +1943,8 @@ coerce({O, N, char}, Str, to_fate) ->
_ -> _ ->
single_error({invalid, O, N, Str}) single_error({invalid, O, N, Str})
end; end;
coerce({O, N, {bytes, [Count]}}, Bytes, to_fate) when is_list(Bytes) ->
coerce_bytes(O, N, Count, convert_bytes(Bytes));
coerce({O, N, {bytes, [Count]}}, Bytes, _Direction) when is_bitstring(Bytes) -> coerce({O, N, {bytes, [Count]}}, Bytes, _Direction) when is_bitstring(Bytes) ->
coerce_bytes(O, N, Count, Bytes); coerce_bytes(O, N, Count, Bytes);
coerce({_, _, bits}, {bits, Num}, from_fate) -> coerce({_, _, bits}, {bits, Num}, from_fate) ->
@ -2011,6 +2013,13 @@ coerce_bytes(O, N, Count, Bytes) when byte_size(Bytes) /= Count ->
coerce_bytes(_, _, _, Bytes) -> coerce_bytes(_, _, _, Bytes) ->
{ok, Bytes}. {ok, Bytes}.
convert_bytes([$# | Rest]) ->
convert_bytes(Rest, <<>>).
convert_bytes([A, B | T], J) -> convert_bytes(T, <<J/binary, (list_to_integer([A, B], 16))>>);
convert_bytes([], J) -> {ok, J};
convert_bytes(O, J) -> {error, {J, O}}.
coerce_chain_object(_, _, _, _, {raw, Binary}) -> coerce_chain_object(_, _, _, _, {raw, Binary}) ->
{ok, Binary}; {ok, Binary};
coerce_chain_object(O, N, T, Tag, S) -> coerce_chain_object(O, N, T, Tag, S) ->