def mutations.entries.loop

mylsm-lsm-store@0.6.0.1 · src/transfer/Restore.bend:259

import mylsm-lsm-store@0.6.0.1/src/transfer/Restore.bend as Restore
import Base
import mylsm-lsm-store@0.6.0.1/src/ByteMemTable.bend as ByteMemTable
import mylsm-lsm-store@0.6.0.1/src/ByteWal.bend as ByteWal

259def mutations.entries.loop(
260  fuel: Nat,
261  mutations: List<&1, ByteWal.Mutation>,
262  reversed: List<&1, ByteMemTable.Entry>,
263  count: Nat
264) -> Result<&1, &1, Error, EntryBatch>:
265  match fuel:
266    case 0n: Fail{ResourceLimit{}}
267    case 1n+rest:
268      match mutations:
269        case Nil{}:
270          Done{EntryBatch{List.reverse(&1, ByteMemTable.Entry, reversed), count}}
271        case Con{mutation, tail}:
272          match mutation:
273            case ByteWal.Put{key, value}:
274              mutations.entries.loop(rest, tail,
275                Con{ByteMemTable.Entry{key, Some{value}}, reversed},
276                Nat.add(count, 1n))
277            case ByteWal.Delete{_}: Fail{InvalidFormat{}}

Uses (10)

Used by (1)