Backplane.AiProtocol.Validation (backplane_ai_protocol v0.7.0)

Copy Markdown

Structural limits for portable protocol values.

These limits apply after decoding. Encoded JSON is bounded separately by Backplane.AiProtocol.Serialization.from_json/2.

Summary

Types

limits()

@type limits() :: %{optional(atom()) => pos_integer()}

Functions

bounded_extension(name, value, limits \\ %{})

@spec bounded_extension(String.t(), term(), limits()) ::
  :ok | {:error, Backplane.AiProtocol.Error.t()}

bounded_map(value, limits \\ %{})

@spec bounded_map(term(), limits()) :: :ok | {:error, Backplane.AiProtocol.Error.t()}

default_limits()

@spec default_limits() :: limits()

reject_unknown(attrs, allowed_keys)

@spec reject_unknown(map(), [atom()]) ::
  :ok | {:error, Backplane.AiProtocol.Error.t()}

term(value, limits \\ %{})

@spec term(term(), limits()) :: :ok | {:error, Backplane.AiProtocol.Error.t()}