webql/memory/kv

Copy Markdown

Types

Kv

pub type Kv {
  Kv(values: dict.Dict(List(String), dynamic.Dynamic))
}
Kv(values: dict.Dict(List(String), dynamic.Dynamic))

Values

decode

pub fn decode(
  memory: memory.Memory(Kv),
  unknown: dynamic.Dynamic,
) -> Result(memory.Memory(Kv), List(decode.DecodeError))

Decodes a dynamic (ie. a Erlang map or JS object) by coverting it into a KV value.

encode

pub fn encode(memory: memory.Memory(Kv)) -> dynamic.Dynamic

Encodes a KV store into a dynamic to be used by an external runtime.

get

pub fn get(
  memory: memory.Memory(Kv),
  path: List(String),
) -> Result(dynamic.Dynamic, dynamic.Dynamic)

Gets a path from KV.

merge

pub fn merge(
  left: memory.Memory(Kv),
  right: memory.Memory(Kv),
) -> memory.Memory(Kv)

Merges two KV stores, using right-hand values when paths conflict.

new

pub fn new() -> memory.Memory(Kv)

Creates a new memory instance constaining KV.

set

pub fn set(
  memory: memory.Memory(Kv),
  path: List(String),
  value: dynamic.Dynamic,
) -> memory.Memory(Kv)

Inserts a value via a path into KV.