def release.retired.loop
mylsm-lsm-store@0.6.0.1 · src/scan/Snapshot.bend:1377
import mylsm-lsm-store@0.6.0.1/src/scan/Snapshot.bend as Snapshot
import Base
1377def release.retired.loop(
1378 retired: List<&2, FileGeneration>,
1379 +target: Nat,
1380 matches: Bool
1381) -> RetiredRelease:
1382 match retired:
1383 case Nil{}: RetiredMissing{Nil{}}
1384 case Con{FileGeneration{+id, +size, +references}, Nil{}}:
1385 match matches:
1386 case True{}:
1387 release.retired.references(id, size, references, Nil{})
1388 case False{}:
1389 RetiredMissing{Con{FileGeneration{id, size,
1390 references}, Nil{}}}
1391 case Con{FileGeneration{+id, +size, +references},
1392 Con{FileGeneration{+next_id, +next_size, +next_references}, rest}}:
1393 match matches:
1394 case True{}:
1395 release.retired.references(id, size, references,
1396 Con{FileGeneration{next_id, next_size, next_references}, rest})
1397 case False{}:
1398 release.retired.prepend(id, size, references,
1399 release.retired.loop(Con{FileGeneration{next_id, next_size,
1400 next_references}, rest}, target,
1401 Nat.is_eq(next_id, target)))