Current section
Files
Jump to
Current section
Files
lib/frame/data.ex
defmodule Kadabra.Frame.Data do
@moduledoc false
defstruct [:stream_id, :data, end_stream: false]
use Bitwise
alias Kadabra.Frame
@type t :: %__MODULE__{
data: binary,
end_stream: boolean,
stream_id: pos_integer
}
@spec new(Frame.t()) :: t
def new(%{stream_id: stream_id, payload: data, flags: flags}) do
%__MODULE__{
data: data,
stream_id: stream_id,
end_stream: end_stream?(flags)
}
end
@spec end_stream?(non_neg_integer) :: boolean
defp end_stream?(flags) when (flags &&& 1) == 1, do: true
defp end_stream?(_), do: false
end