Skip to content

Quick Reference: heliosdb-storage Compilation Fixes

Quick Reference: heliosdb-storage Compilation Fixes

Status: COMPLETE - 0 Errors

Files Modified (6 files)

1. Cargo.toml

  • Line: 43-44 (removed)
  • Fix: Removed duplicate rayon and futures dependencies

2. src/backup_advanced.rs

  • Lines: 617 (added), 641, 648
  • Fix: Captured compressed_size before move to avoid borrow-after-move

3. src/integrity/scrubber.rs

  • Line: 14 (added)
  • Fix: Added use chrono::Timelike; import

4. src/wal.rs

  • Line: 15
  • Fix: Added Default to Lsn derive macro

5. src/verification_engine.rs

  • Lines: 811-812
  • Fix: Added .map_err() for chrono error conversion

6. src/replication_advanced.rs

  • Lines: 179-210, 204-207
  • Fix: Wrapped lock guards in scopes to drop before await

Build Commands

Terminal window
# Debug build
cargo build --package heliosdb-storage
# Result: 0 errors, 123 warnings
# Release build
cargo build --package heliosdb-storage --release
# Result: 0 errors, 123 warnings
# Check only
cargo check --package heliosdb-storage
# Result: 0 errors, 123 warnings

Pattern Reference

Borrow After Move

// BEFORE (ERROR)
let data = vec![1, 2, 3];
let moved = data;
println!("{}", data.len()); // ERROR: borrow after move
// AFTER (FIXED)
let data = vec![1, 2, 3];
let len = data.len(); // Capture before move
let moved = data;
println!("{}", len); // OK: using captured value

Send Trait with Guards

// BEFORE (ERROR)
let guard = lock.write();
do_something(&guard);
await_something().await; // ERROR: guard held across await
// AFTER (FIXED)
{
let guard = lock.write();
do_something(&guard);
} // guard dropped here
await_something().await; // OK: no guard held

Generated: 2025-11-09