def ordered.merge.resolve

mylsm-lsm-store@0.6.0.1 · src/ByteMemTable.bend:561

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

561def ordered.merge.resolve(
562  decisions: Bool & Bool,
563  newer: List<&1, Entry>,
564  older: List<&1, Entry>,
565  reversed: List<&1, Entry>,
566  newer_key: Bytes.Bytes,
567  newer_value: Maybe<&1, Bytes.Bytes>,
568  older_key: Bytes.Bytes,
569  older_value: Maybe<&1, Bytes.Bytes>
570) -> OrderedMergeState:
571  match decisions:
572    case (take_newer, equal):
573      match take_newer:
574        case True{}:
575          match equal:
576            case True{}:
577              OrderedMergeState{newer, older,
578                Con{Entry{newer_key, newer_value}, reversed}}
579            case False{}:
580              OrderedMergeState{newer,
581                Con{Entry{older_key, older_value}, older},
582                Con{Entry{newer_key, newer_value}, reversed}}
583        case False{}:
584          OrderedMergeState{
585            Con{Entry{newer_key, newer_value}, newer}, older,
586            Con{Entry{older_key, older_value}, reversed}}

Uses (8)

Used by (1)