Packages
ankh
0.8.11
0.17.0
0.16.0
0.15.0
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.0
0.12.1
0.12.0
0.11.0
0.10.0
0.9.0
0.8.11
0.8.10
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.0
0.5.3
0.5.2
0.5.1
0.5.0
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.1
0.3.0
0.1.1
0.1.0
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
Pure Elixir HTTP/2 implementation
Current section
Files
Jump to
Current section
Files
lib/ankh/http2/frame/continuation.ex
defmodule Ankh.HTTP2.Frame.Continuation do
@moduledoc false
defmodule Flags do
@moduledoc false
@type t :: %__MODULE__{end_headers: boolean}
defstruct end_headers: false
defimpl Ankh.HTTP2.Frame.Encodable do
def decode(flags, <<_::5, 0::1, _::2>>, _) do
{:ok, %{flags | end_headers: false}}
end
def decode(flags, <<_::5, 1::1, _::2>>, _) do
{:ok, %{flags | end_headers: true}}
end
def decode(_flags, _data, _options), do: {:error, :decode_error}
def encode(%{end_headers: true}, _) do
{:ok, <<0::5, 1::1, 0::2>>}
end
def encode(%{end_headers: false}, _) do
{:ok, <<0::5, 0::1, 0::2>>}
end
def encode(_flags, _options), do: {:error, :encode_error}
end
end
defmodule Payload do
@moduledoc false
@type t :: %__MODULE__{hbf: binary}
defstruct hbf: []
defimpl Ankh.HTTP2.Frame.Encodable do
def decode(payload, data, _) when is_binary(data), do: {:ok, %{payload | hbf: data}}
def decode(_payload, _options), do: {:error, :decode_error}
def encode(%{hbf: hbf}, _), do: {:ok, [hbf]}
def encode(_payload, _options), do: {:error, :encode_error}
end
end
use Ankh.HTTP2.Frame, type: 0x9, flags: Flags, payload: Payload
end