GroundPlane.Boundary.Codec (GroundPlane Contracts v0.1.0)

Copy Markdown View Source

Canonical boundary codec for cross-plane protocol payloads.

The codec intentionally decodes maps with binary keys only. Atom keys may be encoded from trusted in-memory structs, but external input never creates atoms during decode.

Summary

Types

canonical_value()

@type canonical_value() ::
  nil
  | boolean()
  | integer()
  | String.t()
  | [canonical_value()]
  | %{required(String.t()) => canonical_value()}

Functions

decode(binary)

@spec decode(String.t()) :: {:ok, canonical_value()} | {:error, term()}

decode!(binary)

@spec decode!(String.t()) :: canonical_value()

digest(term)

@spec digest(term()) :: String.t()

encode(term)

@spec encode(term()) :: {:ok, String.t()} | {:error, term()}

encode!(term)

@spec encode!(term()) :: String.t()

normalize(envelope)

@spec normalize(term()) :: {:ok, canonical_value()} | {:error, term()}