def finish.decided
mylsm-lsm-store@0.6.0.1 · src/transfer/BackupCursor.bend:245
import mylsm-lsm-store@0.6.0.1/src/transfer/BackupCursor.bend as BackupCursor
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/VisibleCursor.bend as VisibleCursor
import mylsm-lsm-store@0.6.0.1/src/transfer/Backup.bend as Backup
import mylsm-lsm-store@0.6.0.1/src/transfer/BackupCursorPolicy.bend as Policy
245def finish.decided(
246 decision: Policy.FinishDecision,
247 cursor: Maybe<&1, VisibleCursor.Cursor>,
248 pending: List<&1, ByteMemTable.Entry>,
249 seen: Nat,
250 expected: Nat,
251 entry_count: U32,
252 block_count: U32,
253 block_index: U32
254) -> Step:
255 match decision:
256 case Policy.CursorFinishRejected{}: Failure{cursor, Backup.ResourceLimit{}}
257 case Policy.CursorFooter{}:
258 footer(cursor, seen, expected, entry_count, block_count, block_index)
259 case Policy.CursorFinalBlock{pending_count}:
260 block.encoded(cursor, pending, seen, expected, entry_count,
261 block_count, block.index.pair(block_index), pending_count,
262 CursorFooter{})