Packages
ankh
0.4.6
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/headers/flags.ex
defmodule Ankh.Frame.Headers.Flags do
@moduledoc false
@type t :: %__MODULE__{
end_stream: boolean,
end_headers: boolean,
padded: boolean,
priority: boolean
}
defstruct end_stream: false, end_headers: false, padded: false, priority: false
end
defimpl Ankh.Frame.Encodable, for: Ankh.Frame.Headers.Flags do
import Ankh.Frame.Utils
def decode!(flags, <<_::2, pr::1, _::1, pa::1, eh::1, _::1, es::1>>, _) do
%{
flags
| end_stream: int_to_bool!(es),
end_headers: int_to_bool!(eh),
padded: int_to_bool!(pa),
priority: int_to_bool!(pr)
}
end
def encode!(%{end_stream: es, end_headers: eh, padded: pa, priority: pr}, _) do
<<0::2, bool_to_int!(pr)::1, 0::1, bool_to_int!(pa)::1, bool_to_int!(eh)::1, 0::1,
bool_to_int!(es)::1>>
end
end