def advance.active

mylsm-lsm-store@0.6.0.1 · src/transfer/BackupCursor.bend:293

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/scan/VisibleCursor.bend as VisibleCursor
import mylsm-lsm-store@0.6.0.1/src/transfer/Backup.bend as Backup

293def advance.active(
294  stream: Stream,
295  source_step: VisibleCursor.Step
296) -> Step:
297  match stream:
298    case Stream{CursorBlocks{}, cursor, pending, pending_count, seen, expected,
299        entry_count, block_count, block_index}:
300      match source_step:
301        case VisibleCursor.Item{entry, cursor}:
302          item(entry, Some{cursor}, pending, seen, pending_count, expected,
303            entry_count, block_count, block_index)
304        case VisibleCursor.Skip{cursor}:
305          skip(Some{cursor}, pending, pending_count, seen, expected,
306            entry_count, block_count, block_index)
307        case VisibleCursor.End{}:
308          finish(Stream{CursorBlocks{}, None{}, pending, pending_count, seen,
309            expected, entry_count, block_count, block_index})
310        case VisibleCursor.Error{error}:
311          match error:
312            case (code, message):
313              Failure{None{}, Backup.SourceFailure{code, message}}
314    case Stream{CursorFooter{}, cursor, pending, pending_count, seen,
315        expected, entry_count, block_count, block_index}:
316      footer(cursor, seen, expected, entry_count, block_count, block_index)
317    case Stream{CursorFinished{}, _, _, _, _, _, _, _, _}: End{}

Uses (11)

Used by (1)