KiwiCodec.Metadata (kiwi_codec v0.2.2)

Copy Markdown View Source

Compiled metadata attached to generated Kiwi modules.

Generated modules expose this metadata through __kiwi_metadata__/0 so encoders, decoders, inspectors, and tooling can work from one normalized description of fields, enum values, and definition kind.

Summary

Types

kind()

@type kind() :: :message | :struct | :enum

t()

@type t() :: %KiwiCodec.Metadata{
  enum_by_name: %{required(atom()) => integer()},
  enum_by_value: %{required(integer()) => atom()},
  fields_by_id: %{required(pos_integer()) => KiwiCodec.Metadata.Field.t()},
  fields_by_name: %{required(atom()) => KiwiCodec.Metadata.Field.t()},
  kind: kind(),
  ordered_fields: [KiwiCodec.Metadata.Field.t()]
}