Packages
ankh
0.3.0
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/frame/goaway/payload.ex
defmodule Ankh.Frame.Goaway.Payload do
@moduledoc """
GOAWAY frame payload
"""
@type t :: %__MODULE__{last_stream_id: Integer.t, error_code: atom,
data: binary}
defstruct [last_stream_id: nil, error_code: nil, data: <<>>]
end
defimpl Ankh.Frame.Payload, for: Ankh.Frame.Goaway.Payload do
alias Ankh.Frame.Error
def decode!(struct, <<_::1, lsid::31, error::32>>, _) do
%{struct | last_stream_id: lsid, error_code: Error.decode!(error)}
end
def decode!(struct, <<_::1, lsid::31, error::32, data::binary>>, _) do
%{struct | last_stream_id: lsid, error_code: Error.decode!(error),
data: data}
end
def encode!(%{last_stream_id: lsid, error_code: error, data: data}, _) do
[<<0::1, lsid::31>>, Error.encode!(error), data]
end
end