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{}