ankh v0.7.0 Ankh.Frame

HTTP/2 frame struct

The using macro injects the frame struct needed by Ankh.Frame.

Link to this section Summary

Types

Frame length

Encode/Decode options

t()

Struct injected by the Ankh.Frame using macro

Frame type code

Functions

Injects the frame struct in a module

Decodes a binary into a frame struct

Encodes a frame struct into binary

Returns s tream of frames from a buffer, returning the leftover buffer data and the frame header information and data (without decoding it) in a tuple

Link to this section Types

Link to this type

length()
length() :: integer()

Frame length

Link to this type

options()
options() :: Keyword.t()

Encode/Decode options

Link to this type

t()
t() :: term() | nil

Struct injected by the Ankh.Frame using macro.

Link to this type

type()
type() :: integer()

Frame type code

Link to this section Functions

Link to this macro

__using__(args) (macro)
__using__(type: type(), flags: atom() | nil, payload: atom() | nil) :: Macro.t()

Injects the frame struct in a module.

  • type: HTTP/2 frame type code
  • flags: frame flags struct or nil for no flags
  • payload: frame payload struct or nil for no payload
Link to this function

decode(frame, data, options \\ [])
decode(t(), binary(), options()) :: {:ok, t()} | {:error, term()}

Decodes a binary into a frame struct

Parameters:

  • struct: struct using Ankh.Frame
  • binary: data to decode into the struct
  • options: options to pass as context to the decoding function
Link to this function

encode(frame, options \\ [])
encode(t(), options()) :: {:ok, iodata()} | {:error, term()}

Encodes a frame struct into binary

Parameters:

  • struct: struct using Ankh.Frame
  • options: options to pass as context to the encoding function
Link to this function

to_stream(data)
to_stream(iodata()) :: Enumerable.t()

Returns s tream of frames from a buffer, returning the leftover buffer data and the frame header information and data (without decoding it) in a tuple:

{remaining_buffer, {length, type, id, frame_data}}