mist/internal/http2

Types

pub type HpackContext
pub type HpackError {
  Compression
  BadHeaderPacket(BitArray)
}

Constructors

  • Compression
  • BadHeaderPacket(BitArray)
pub type Http2Settings {
  Http2Settings(
    header_table_size: Int,
    server_push: frame.PushState,
    max_concurrent_streams: Int,
    initial_window_size: Int,
    max_frame_size: Int,
    max_header_list_size: option.Option(Int),
  )
}

Constructors

  • Http2Settings(
      header_table_size: Int,
      server_push: frame.PushState,
      max_concurrent_streams: Int,
      initial_window_size: Int,
      max_frame_size: Int,
      max_header_list_size: option.Option(Int),
    )

Values

pub fn default_settings() -> Http2Settings
pub fn encode_headers(
  context: HpackContext,
  headers: List(#(String, String)),
  end_stream: Bool,
  stream_identifier: frame.StreamIdentifier(frame.Frame),
  max_frame_size: Int,
) -> Result(#(BitArray, HpackContext), String)
pub fn encode_response(
  resp: response.Response(bytes_tree.BytesTree),
  context: HpackContext,
  id: frame.StreamIdentifier(frame.Frame),
  max_frame_size: Int,
) -> Result(#(BitArray, HpackContext), String)
pub fn hpack_decode(
  context: HpackContext,
  bin: BitArray,
) -> Result(#(List(#(String, String)), HpackContext), HpackError)
pub fn hpack_encode(
  context: HpackContext,
  headers: List(#(String, String)),
) -> Result(#(BitArray, HpackContext), error)
pub fn hpack_max_table_size(
  context: HpackContext,
  size: Int,
) -> HpackContext
pub fn hpack_new_context(size: Int) -> HpackContext
pub fn send_body(
  conn: http.Connection,
  before: BitArray,
  data: BitArray,
  stream_identifier: frame.StreamIdentifier(frame.Frame),
  end_stream: Bool,
  max_frame_size: Int,
) -> Result(Nil, String)
pub fn send_encoded(
  conn: http.Connection,
  encoded: BitArray,
) -> Result(Nil, String)
pub fn send_frame(
  frame_to_send: frame.Frame,
  socket: socket.Socket,
  transport: transport.Transport,
) -> Result(Nil, socket.SocketReason)
pub fn send_headers(
  context: HpackContext,
  conn: http.Connection,
  headers: List(#(String, String)),
  end_stream: Bool,
  stream_identifier: frame.StreamIdentifier(frame.Frame),
  max_frame_size: Int,
) -> Result(HpackContext, String)
pub fn update_settings(
  current: Http2Settings,
  settings: List(frame.Setting),
) -> Http2Settings
✨ Search Document