def parse.record.value.decoded

mylsm-lsm-store@0.6.0.1 · src/SstFile.bend:601

import mylsm-lsm-store@0.6.0.1/src/SstFile.bend as SstFile
import Base
import mylsm-lsm-store@0.6.0.1/src/MemTable.bend as MemTable
import bend-kit-bytes@0.3.2.0/bytes.bend as Bytes

601# Decode one length-delimited key and optional value from the cursor.
602def parse.record.value.decoded(
603  pair: Bytes.Cursor & Result<&1, &1, Error, String>,
604  +key_len: U32,
605  +key: String,
606  +value_len: U32
607) -> Bytes.Cursor & Result<&1, &1, Error, ParsedRecord>:
608  match pair:
609    case (cursor, Fail{error}):
610      (cursor, Fail{error})
611    case (cursor, Done{value}):
612      (cursor, Done{Rec{MemTable.Entry{key, Some{value}},
613        (9 + key_len + value_len : U32)}})

Uses (11)

Used by (1)