def segment_at(
%__MODULE__{data: data, size: size} = payload,
number
) do
offset = size * number
data_size = byte_size(data)
part_size = Enum.min([data_size - offset, size])
more = data_size > offset + part_size
# TODO: splits into the appropriate segment
data = data |> :binary.part(offset, part_size)
block = Block.build({number, more, size})
{data, block, %{payload | multipart: more}}
end
See TODO: