View Source Bunch.Binary (Bunch v1.6.1)
A bunch of helpers for manipulating binaries.
Summary
Functions
Chunks given binary into parts of given size.
Chunks given binary into parts of given size.
Returns a 2-tuple, where the first element is the result of take_int_part(binary, i),
and the second is the rest of binary.
Cuts off the smallest possible chunk from the end of binary, so that the
size of returned binary is an integer multiple of i.
Functions
@spec chunk_every(binary(), pos_integer()) :: [binary()]
Chunks given binary into parts of given size.
Remaining part is cut off.
Examples
iex> <<1, 2, 3, 4, 5, 6>> |> Bunch.Binary.chunk_every(2)
[<<1, 2>>, <<3, 4>>, <<5, 6>>]
iex> <<1, 2, 3, 4, 5, 6, 7>> |> Bunch.Binary.chunk_every(2)
[<<1, 2>>, <<3, 4>>, <<5, 6>>]
@spec chunk_every_rem(binary(), chunk_size :: pos_integer()) :: {[binary()], remainder :: binary()}
Chunks given binary into parts of given size.
Returns list of chunks and remainder.
Examples
iex> <<1, 2, 3, 4, 5, 6>> |> Bunch.Binary.chunk_every_rem(2)
{[<<1, 2>>, <<3, 4>>, <<5, 6>>], <<>>}
iex> <<1, 2, 3, 4, 5, 6, 7>> |> Bunch.Binary.chunk_every_rem(2)
{[<<1, 2>>, <<3, 4>>, <<5, 6>>], <<7>>}
@spec split_int_part(binary(), pos_integer()) :: {binary(), binary()}
Returns a 2-tuple, where the first element is the result of take_int_part(binary, i),
and the second is the rest of binary.
Examples
iex> import Bunch.Binary
iex> split_int_part(<<1,2,3,4,5,6,7,8>>, 3)
{<<1,2,3,4,5,6>>, <<7,8>>}
iex> split_int_part(<<1,2,3,4,5,6,7,8>>, 4)
{<<1,2,3,4,5,6,7,8>>, <<>>}
@spec take_int_part(binary(), pos_integer()) :: binary()
Cuts off the smallest possible chunk from the end of binary, so that the
size of returned binary is an integer multiple of i.
Examples
iex> import Bunch.Binary
iex> take_int_part(<<1,2,3,4,5,6,7,8>>, 3)
<<1,2,3,4,5,6>>
iex> take_int_part(<<1,2,3,4,5,6,7,8>>, 4)
<<1,2,3,4,5,6,7,8>>