[erlang-questions] Booleans in bit syntax

Viktor Söderqvist viktor@REDACTED
Sat Jan 20 14:32:28 CET 2018

Adding a boolean type specifier in the bit syntax would be useful, I
think. Then you could write

    decode_stuff(<<Flag1/boolean, Flag2/boolean, 0:6, Rest/binary>>) ->
        {Flag1, Flag2, Rest}.

instead of

    decode_stuff(<<F1:1, F2:1, 0:6, Rest/binary>>) ->
        Flag1 = case F1 of 1 -> true;
                           0 -> false
        Flag2 = case F2 of 1 -> true;
                           0 -> false;
        {Flag1, Flag2, Rest}.

Many binary protocols contain flags and indicators, typically used as
booleans in application logic with 1 for true, 0 for false.

The default size would be 1 bit, i.e. Size = 1 and Unit = 1. It would be
for constructing binaries as well. It is intuitive and it would be
backward compatible.

What do you think? Any reason for not adding it?


More information about the erlang-questions mailing list