def stats.visible

mylsm-lsm-store@0.6.0.1 · src/ByteDurableDb.bend:3160

import mylsm-lsm-store@0.6.0.1/src/ByteDurableDb.bend as ByteDurableDb
import Base
import mylsm-lsm-store@0.6.0.1/src/ByteMemTable.bend as ByteMemTable
import mylsm-lsm-store@0.6.0.1/src/scan/VisibleStats.bend as VisibleStats
import bend-kit-bytes@0.3.2.0/bytes.bend as Bytes

3160def stats.visible(
3161  entries: List<&1, ByteMemTable.Entry>,
3162  current: VisibleStats.Stats
3163) -> VisibleStats.Stats:
3164  match entries:
3165    case Nil{}: current
3166    case Con{ByteMemTable.Entry{Bytes.Bytes{+len, _}, val}, tail}:
3167      match val:
3168        case None{}: stats.visible(tail, current)
3169        case Some{Bytes.Bytes{+value_len, _}}:
3170          stats.visible(tail, VisibleStats.result(VisibleStats.apply(current,
3171            U32.to_nat(len), None{}, Some{U32.to_nat(value_len)})))

Uses (8)

Used by (1)