webql/memory
Copy MarkdownTypes
Get
pub type Get(store) =
fn(Memory(store), List(String)) -> Result(
dynamic.Dynamic,
dynamic.Dynamic,
)Memory
pub type Memory(store) {
Memory(
new: fn() -> Memory(store),
store: store,
get: fn(Memory(store), List(String)) -> Result(
dynamic.Dynamic,
dynamic.Dynamic,
),
set: fn(Memory(store), List(String), dynamic.Dynamic) -> Memory(
store,
),
merge: fn(Memory(store), Memory(store)) -> Memory(store),
)
}Memory(
new: fn() -> Memory(store),
store: store,
get: fn(Memory(store), List(String)) -> Result(
dynamic.Dynamic,
dynamic.Dynamic,
),
set: fn(Memory(store), List(String), dynamic.Dynamic) -> Memory(
store,
),
merge: fn(Memory(store), Memory(store)) -> Memory(store),
)Merge
pub type Merge(store) =
fn(Memory(store), Memory(store)) -> Memory(store)New
pub type New(store) =
fn() -> Memory(store)Set
pub type Set(store) =
fn(Memory(store), List(String), dynamic.Dynamic) -> Memory(
store,
)Store
pub opaque type StoreValues
decode
pub fn decode(
memory: Memory(Store),
unknown: dynamic.Dynamic,
) -> Result(Memory(Store), 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(Store)) -> dynamic.DynamicEncodes a KV store into a dynamic to be used by an external runtime.
get
pub fn get(
memory: Memory(Store),
path: List(String),
) -> Result(dynamic.Dynamic, dynamic.Dynamic)Gets a path from KV.
merge
pub fn merge(
left: Memory(Store),
right: Memory(Store),
) -> Memory(Store)Merges two KV stores, using right-hand values when paths conflict.
new
pub fn new() -> Memory(Store)Creates a new memory instance constaining KV.
set
pub fn set(
memory: Memory(Store),
path: List(String),
value: dynamic.Dynamic,
) -> Memory(Store)Inserts a value via a path into KV.