L1.5 · store-coupled payload IO (02 §3). Wraps the store's
intern-payload!/read-payload* with the inline/hydrate policy. Built after
store; the PURE payload ns stays store-free so store itself depends
only on it (no cycle).
L1.5 · store-coupled payload IO (02 §3). Wraps the store's `intern-payload!`/`read-payload*` with the inline/hydrate policy. Built after `store`; the PURE `payload` ns stays store-free so `store` itself depends only on it (no cycle).
(edn-safe v)Recursively replace members that would not survive a canonical round-trip (fns, atoms/derefables, host objects) with an opaque marker, and BOUND any (possibly infinite) lazy seq — so every stored or inlined value is EDN-safe, canonical, hashable, and finite. Pure finite data is returned unchanged (02 §1, the :eval-result/:final snapshot).
Recursively replace members that would not survive a canonical round-trip (fns, atoms/derefables, host objects) with an opaque marker, and BOUND any (possibly infinite) lazy seq — so every stored or inlined value is EDN-safe, canonical, hashable, and finite. Pure finite data is returned unchanged (02 §1, the :eval-result/:final snapshot).
(hydrate-message store msg)Rename :message/content-or-ref → :message/content, dereferencing if it is
a ref. The hydrated shape both request-assembly and the compaction formatter
consume (05 §4, 07 §4, GD11).
Rename `:message/content-or-ref` → `:message/content`, dereferencing if it is a ref. The hydrated shape both request-assembly and the compaction formatter consume (05 §4, 07 §4, GD11).
A value whose canonical bytes are ≤ this is embedded directly in its event; larger values are content-addressed into the blob store (02 §3).
A value whose canonical bytes are ≤ this is embedded directly in its event; larger values are content-addressed into the blob store (02 §3).
Cap on realized elements per (possibly lazy/infinite) seq during coercion, so interning a value containing an unbounded seq is BOUNDED, not a hang.
Cap on realized elements per (possibly lazy/infinite) seq during coercion, so interning a value containing an unbounded seq is BOUNDED, not a hang.
(maybe-intern store value opts)Return value inline (unchanged) when small — scalar / string ≤512 /
number / keyword / boolean / nil / small collection (canonical bytes ≤512);
otherwise content-address it and return a tagged payload-ref (kind =
opts :payload/kind). Unrestorable members are EDN-coerced first so the
stored value is always canonical (02 §3).
Return `value` inline (unchanged) when small — scalar / string ≤512 / number / keyword / boolean / nil / small collection (canonical bytes ≤512); otherwise content-address it and return a tagged payload-ref (kind = `opts :payload/kind`). Unrestorable members are EDN-coerced first so the stored value is always canonical (02 §3).
(read-payload store ref-or-value)Dereference a tagged ref via the store; pass any non-ref value through
unchanged. The ONLY way the loop reads a …-or-ref/…-ref field — it never
compares or branches on a raw ref (02 §3).
Dereference a tagged ref via the store; pass any non-ref value through unchanged. The ONLY way the loop reads a `…-or-ref`/`…-ref` field — it never compares or branches on a raw ref (02 §3).
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |