Apply rustfmt to entire workspace

Runs cargo fmt --all; all 573 tests still passing, clippy still clean.
No logic changes — formatting only.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
This commit is contained in:
osobh
2026-04-04 20:31:33 -05:00
co-authored by Claude Sonnet 4.6
parent 3d524e2d63
commit 1c107fe58a
69 changed files with 2790 additions and 1325 deletions
+58 -25
View File
@@ -69,7 +69,10 @@ impl OnionFile {
entry.set_epoch(EPOCH_DEAD);
}
}
Ok(GcStats { revisions_removed: count, bytes_reclaimed: 0 })
Ok(GcStats {
revisions_removed: count,
bytes_reclaimed: 0,
})
}
_ => {
// ── Immediate path: compact now ───────────────────────────
@@ -100,11 +103,7 @@ impl OnionFile {
GcPolicy::KeepSince(cutoff) => all_revs
.iter()
.copied()
.filter(|&rev| {
self.index
.get(rev)
.is_some_and(|e| e.timestamp >= *cutoff)
})
.filter(|&rev| self.index.get(rev).is_some_and(|e| e.timestamp >= *cutoff))
.collect(),
GcPolicy::KeepRevisions(explicit) => {
let mut set: HashSet<u64> = explicit.iter().copied().collect();
@@ -118,7 +117,11 @@ impl OnionFile {
GcPolicy::EpochFlip(inner) => return self.compute_to_remove(inner),
};
all_revs.iter().copied().filter(|rev| !keep.contains(rev)).collect()
all_revs
.iter()
.copied()
.filter(|rev| !keep.contains(rev))
.collect()
}
/// Consolidate + compact the given revision set immediately.
@@ -204,8 +207,7 @@ impl OnionFile {
}
// Compact page_data blob.
let surviving_revs: Vec<u64> =
self.index.entries().iter().map(|e| e.revision).collect();
let surviving_revs: Vec<u64> = self.index.entries().iter().map(|e| e.revision).collect();
let mut new_page_data: Vec<u8> = Vec::new();
for &rev in &surviving_revs {
if let Some(table) = self.page_tables.get_mut(rev as usize) {
@@ -222,7 +224,10 @@ impl OnionFile {
}
self.page_data = new_page_data;
Ok(GcStats { revisions_removed, bytes_reclaimed })
Ok(GcStats {
revisions_removed,
bytes_reclaimed,
})
}
/// Find all entries marked [`EPOCH_DEAD`] and compact them.
@@ -270,9 +275,7 @@ mod tests {
} else {
None
};
onion
.commit_session(s, annotation.as_deref())
.unwrap();
onion.commit_session(s, annotation.as_deref()).unwrap();
}
onion
}
@@ -369,7 +372,10 @@ mod tests {
assert_eq!(stats.revisions_removed, 4);
let after = onion.page_data.len();
// page_data must be smaller (or at most equal for all-same pages that compress to 0)
assert!(after <= before, "page_data must shrink after GC: {before} -> {after}");
assert!(
after <= before,
"page_data must shrink after GC: {before} -> {after}"
);
}
/// After GC + flush, the on-disk file is smaller than before.
@@ -421,7 +427,10 @@ mod tests {
// The three surviving revisions must still reconstruct without error.
for rev in 3..6u64 {
let bytes = onion.reconstruct_revision(rev, &h5_base).unwrap();
assert!(!bytes.is_empty(), "rev {rev} should produce non-empty bytes");
assert!(
!bytes.is_empty(),
"rev {rev} should produce non-empty bytes"
);
}
}
@@ -456,7 +465,11 @@ mod tests {
let before_gc = onion.reconstruct_revision(2, &h5_base).unwrap();
assert_eq!(&before_gc[0..4096], &vec![0xAA_u8; 4096], "pre-GC page0");
assert_eq!(&before_gc[4096..8192], &vec![0xBB_u8; 4096], "pre-GC page1");
assert_eq!(&before_gc[8192..12288], &vec![0xCC_u8; 4096], "pre-GC page2");
assert_eq!(
&before_gc[8192..12288],
&vec![0xCC_u8; 4096],
"pre-GC page2"
);
// GC: keep only rev 2 — revs 0 and 1 are ancestors that will be pruned.
onion.gc(GcPolicy::KeepLastN(1)).unwrap();
@@ -490,15 +503,20 @@ mod tests {
let mut onion = make_onion_with_n_revisions(10);
let page_data_len_before = onion.page_data.len();
let stats = onion.gc(GcPolicy::EpochFlip(Box::new(GcPolicy::KeepLastN(3)))).unwrap();
let stats = onion
.gc(GcPolicy::EpochFlip(Box::new(GcPolicy::KeepLastN(3))))
.unwrap();
// Reports the count that will be removed.
assert_eq!(stats.revisions_removed, 7);
// bytes_reclaimed is 0 until flush compacts.
assert_eq!(stats.bytes_reclaimed, 0);
// page_data must NOT have changed yet.
assert_eq!(onion.page_data.len(), page_data_len_before,
"epoch flip must not compact page_data immediately");
assert_eq!(
onion.page_data.len(),
page_data_len_before,
"epoch flip must not compact page_data immediately"
);
// Index still has all 10 entries (removal deferred).
assert_eq!(onion.revision_count(), 10);
// Entries 0..6 should be marked EPOCH_DEAD.
@@ -525,7 +543,9 @@ mod tests {
}
// Epoch flip: defer compaction.
onion.gc(GcPolicy::EpochFlip(Box::new(GcPolicy::KeepLastN(2)))).unwrap();
onion
.gc(GcPolicy::EpochFlip(Box::new(GcPolicy::KeepLastN(2))))
.unwrap();
assert_eq!(onion.revision_count(), 5, "not compacted yet");
// After flush, deferred compaction runs.
@@ -533,7 +553,11 @@ mod tests {
// Reload and verify.
let reloaded = OnionFile::open(&h5).unwrap();
assert_eq!(reloaded.revision_count(), 2, "2 revisions survive after flush");
assert_eq!(
reloaded.revision_count(),
2,
"2 revisions survive after flush"
);
// Surviving revisions are still reconstructable.
for rev in 3u64..5 {
@@ -559,16 +583,25 @@ mod tests {
#[test]
fn gc_epoch_flip_nested_policy_keep_tagged() {
let mut onion = make_onion_with_n_revisions(9); // tagged at 0,3,6
let stats = onion.gc(GcPolicy::EpochFlip(Box::new(GcPolicy::KeepTagged))).unwrap();
let stats = onion
.gc(GcPolicy::EpochFlip(Box::new(GcPolicy::KeepTagged)))
.unwrap();
assert_eq!(stats.revisions_removed, 6); // keeps 0,3,6
assert_eq!(onion.revision_count(), 9, "deferred — index intact");
// 0,3,6 are live; rest are dead.
for rev in [0u64, 3, 6] {
assert_eq!(onion.index.get(rev).unwrap().epoch(), 0, "tagged rev {rev} must be live");
assert_eq!(
onion.index.get(rev).unwrap().epoch(),
0,
"tagged rev {rev} must be live"
);
}
for rev in [1u64, 2, 4, 5, 7, 8] {
assert_eq!(onion.index.get(rev).unwrap().epoch(), EPOCH_DEAD,
"untagged rev {rev} must be EPOCH_DEAD");
assert_eq!(
onion.index.get(rev).unwrap().epoch(),
EPOCH_DEAD,
"untagged rev {rev} must be EPOCH_DEAD"
);
}
}