def stream.blocks.updated

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

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

1162# Updates constant-size file state and returns this block's ordered entries.
1163def stream.blocks.updated(
1164  state: BlockStreamState,
1165  records: ParsedEntries,
1166  +count: U32,
1167  digest: Bytes.Bytes
1168) -> BlockStreamOutput:
1169  match state:
1170    case BlockStreamState{+level, +total, +block_count, +remaining,
1171        +entries_left, _, hashes}:
1172      match records:
1173        case Entries{reversed, previous}:
1174          BlockStreamOutput{
1175            BlockStreamState{level, total, block_count,
1176              (remaining - 1 : U32), (entries_left - count : U32),
1177              previous, Con{digest, hashes}},
1178            List.reverse(&2, MemTable.Entry, reversed)}

Uses (9)

Used by (1)