Slide 22
Slide 22 text
defmodule MyBinParser3 do
@moduledoc """
Retrieve binaries before a 0x00 byte, using a list.
"""
def before_zero(bin), do: do_before_zero(bin, [])
defp do_before_zero(|<|>, acc),
do: acc |> Enum.reverse() |> IO.iodata_to_binary()
defp do_before_zero(|<0, _rest|:binary|>, acc),
do: do_before_zero("", acc)
defp do_before_zero(|, acc),
do: do_before_zero(rest, [n | acc])
end
GOOD code example #2 (iolist):