def decode.apply
mylsm-lsm-store@0.6.0.1 · src/ByteSstFile.bend:862
import mylsm-lsm-store@0.6.0.1/src/ByteSstFile.bend as ByteSstFile
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
862
863def decode.apply(
864 fuel: Nat,
865 table: ByteMemTable.Table,
866 mutations: List<&1, ByteWal.Mutation>
867) -> Result<&1, &1, Error, ByteMemTable.Table>:
868 match fuel:
869 case 0n:
870 match mutations:
871 case Nil{}:
872 Done{table}
873 case Con{_, _}:
874 Fail{Malformed{}}
875 case 1n+rest:
876 match mutations:
877 case Nil{}:
878 Fail{Malformed{}}
879 case Con{mutation, tail}:
880 match mutation:
881 case ByteWal.Put{key, value}:
882 decode.apply(rest, ByteMemTable.put(table, key, value), tail)
883 case ByteWal.Delete{key}:
884 decode.apply(rest, ByteMemTable.del(table, key), tail)