Pfx.cast
You're seeing just the function
cast
, go back to Pfx module for more information.
Specs
cast(prefix()) :: non_neg_integer()
Casts a pfx
to an integer.
After right padding the given pfx
, its bits are interpreted as a number of
maxlen bits wide. Empty prefixes evaluate to 0
, since all 'missing' bits
are taken to be zero (even if pfx.maxlen
is 0
).
See cut/3
for how this capability might be useful.
Examples
iex> cast("255.255.0.0")
4294901760
iex> cast("255.255.0.0/16")
4294901760
iex> cast({255, 255, 0, 0})
4294901760
iex> cast({{255, 255, 0, 0}, 32})
4294901760
iex> cast(%Pfx{bits: <<255, 255>>, maxlen: 32})
4294901760
iex> new(<<4294901760::32>>, 32)
%Pfx{bits: <<255, 255, 0, 0>>, maxlen: 32}
# missing bits filled in as `0`s
iex> cast(%Pfx{bits: <<255>>, maxlen: 16})
65280
iex> cast(%Pfx{bits: <<-1::128>>, maxlen: 128})
340282366920938463463374607431768211455
iex> cast(%Pfx{bits: <<>>, maxlen: 8})
0
# a bit weird, but:
iex> cast(%Pfx{bits: <<>>, maxlen: 0})
0