def records.step

mylsm-lsm-store@0.6.0.1 · src/ByteWal.bend:94

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

94# Continues record encoding while preserving the first failure.
95def records.step(
96  rest: List<&1, Mutation>,
97  current: Result<&1, &1, Wal.Error, Bytes.Bytes>,
98  reversed: List<&1, Bytes.Bytes>,
99  count: U32
100) -> Result<&1, &1, Wal.Error, List<&1, Bytes.Bytes> & U32>:
101  match rest current:
102    case Nil{} Fail{error}:
103      Fail{error}
104    case Nil{} Done{bytes}:
105      Done{(List.reverse(&1, Bytes.Bytes, Con{bytes, reversed}), (count + 1 : U32))}
106    case Con{_, _} Fail{error}:
107      Fail{error}
108    case Con{mutation, tail} Done{bytes}:
109      records.step(tail, record.encode(mutation), Con{bytes, reversed}, (count + 1 : U32))

Uses (11)

Used by (1)