SqliteEngine.Procedures.Value (SqliteEngine v0.1.1)

Copy Markdown View Source

Versioned canonical value codec used by native Luau procedures.

Supported values are nil, booleans, signed 64-bit integers, finite floats, UTF-8 binaries, explicit {:blob, binary} values, lists, and maps with UTF-8 binary keys. Maps are encoded in unsigned key-byte order.

Summary

Types

limits()

@type limits() :: %{optional(:depth | :values | :bytes | :entries) => pos_integer()}

reason()

@type reason() :: %{code: atom(), path: binary(), detail: term()}

value()

@type value() ::
  nil
  | boolean()
  | integer()
  | float()
  | binary()
  | {:blob, binary()}
  | [value()]
  | %{optional(binary()) => value()}

Functions

decode(encoded, limits \\ %{})

@spec decode(binary(), limits()) :: {:ok, value()} | {:error, reason()}

decode!(encoded, limits \\ %{})

@spec decode!(binary(), limits()) :: value()

defaults()

@spec defaults() :: map()

encode(value, limits \\ %{})

@spec encode(value(), limits()) :: {:ok, binary()} | {:error, reason()}

encode!(value, limits \\ %{})

@spec encode!(value(), limits()) :: binary()

hash(value, limits \\ %{})

@spec hash(value(), limits()) :: {:ok, binary()} | {:error, reason()}

version()

@spec version() :: pos_integer()