Pfx.undigits
You're seeing just the function
undigits
, go back to Pfx module for more information.
Specs
undigits({tuple(), pos_integer()}, pos_integer()) :: t()
Return the Pfx
prefix represented by the digits
, actual length
and a given
field width
.
The pfx.bits
are formed by first concatenating the digits
expressed as
bitstrings of width
-bits wide and then truncating to the length
-msb bits.
The pfx.maxlen
is inferred as tuple_size(digits) * width
.
Note: if a digit does not fit in width
-bits, only the width
-least
significant bits are preserved, which may yield surprising results.
Examples
# truncated to the first 24 bits and maxlen is 32 (4*8)
iex> undigits({{10, 11, 12, 0}, 24}, 8)
%Pfx{bits: <<10, 11, 12>>, maxlen: 32}
iex> undigits({{-1, -1, 0, 0}, 32}, 8) |> format()
"255.255.0.0"
# bits are truncated to empty bitstring (`length` is 0)
iex> undigits({{1,2,3,4}, 0}, 8)
%Pfx{bits: <<>>, maxlen: 32}