KiwiCodec.Container (kiwi_codec v0.1.0)

Copy Markdown View Source

Helpers for Kiwi chunk containers with an 8-byte magic and little-endian chunk lengths.

Summary

Functions

Returns one raw chunk from a Kiwi container without parsing later chunks.

Returns the inflated data chunk from a Kiwi container.

Returns the data chunk inflated with a caller-provided inflater.

Parses all chunks from a Kiwi container.

Types

parsed()

@type parsed() :: %{magic: binary(), version: non_neg_integer(), chunks: [binary()]}

Functions

build(chunks, opts \\ [])

@spec build(
  [iodata()],
  keyword()
) :: binary()

chunk(binary, index, magic \\ "fig-kiwi")

@spec chunk(binary(), non_neg_integer(), binary()) :: binary()

Returns one raw chunk from a Kiwi container without parsing later chunks.

Chunk indexes are zero-based.

data(binary, magic \\ "fig-kiwi")

@spec data(binary(), binary()) :: binary()

Returns the inflated data chunk from a Kiwi container.

This is useful for callers that only need the payload and want to avoid inflating or decoding the schema chunk.

data(binary, magic, inflater)

@spec data(binary(), binary(), (binary() -> binary())) :: binary()

Returns the data chunk inflated with a caller-provided inflater.

deflate(data)

@spec deflate(iodata()) :: binary()

inflate(data)

@spec inflate(binary()) :: binary()

parse(binary, magic \\ "fig-kiwi")

@spec parse(binary(), binary()) :: parsed()

Parses all chunks from a Kiwi container.