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)))

Uses (8)

Used by (1)