Packages
ankh
0.0.5
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/encoder.ex
defprotocol Ankh.Frame.Encoder do
@moduledoc """
Protocol for encoding/decoding HTTP/2 frames from to binary
"""
@typedoc """
Struct conforming to the `Ankh.Frame.Encoder` protocol
"""
@type t :: struct
@fallback_to_any true
@doc """
Decodes a binary into a conforming struct
Parameters:
- struct: struct conforming to the `Ank.Frame.Encoder` protocol
- binary: data to decode into the struct
- options: options to pass as context to the decoding function
"""
@spec decode!(t, binary, Any) :: Encoder.t
def decode!(struct, binary, options)
@doc """
Encodes a conforming struct into binary
Parameters:
- struct: struct conforming to the `Ank.Frame.Encoder` protocol
- options: options to pass as context to the encoding function
"""
@spec encode!(t, Any) :: binary
def encode!(struct, options)
end
defimpl Ankh.Frame.Encoder, for: Any do
def decode!(_, _, _), do: nil
def encode!(_, _), do: <<>>
end