diff --git a/src/obicompactvec/src/bitmatrix.rs b/src/obicompactvec/src/bitmatrix.rs index ead53af..5fd426b 100644 --- a/src/obicompactvec/src/bitmatrix.rs +++ b/src/obicompactvec/src/bitmatrix.rs @@ -190,6 +190,10 @@ pub fn pack_bit_matrix(dir: &Path) -> io::Result<()> { file.write_all(&(n_cols as u64).to_le_bytes())?; for &off in &offsets { file.write_all(&off.to_le_bytes())?; } for data in &col_files { file.write_all(data)?; } + drop(file); + + for c in 0..n_cols { fs::remove_file(col_path(dir, c))?; } + fs::remove_file(dir.join("meta.json"))?; Ok(()) } diff --git a/src/obicompactvec/src/intmatrix.rs b/src/obicompactvec/src/intmatrix.rs index 5fa1cc4..d1421e5 100644 --- a/src/obicompactvec/src/intmatrix.rs +++ b/src/obicompactvec/src/intmatrix.rs @@ -293,6 +293,10 @@ pub fn pack_compact_int_matrix(dir: &Path) -> io::Result<()> { file.write_all(&(n_cols as u64).to_le_bytes())?; for &off in &offsets { file.write_all(&off.to_le_bytes())?; } for data in &col_files { file.write_all(data)?; } + drop(file); + + for c in 0..n_cols { fs::remove_file(col_path(dir, c))?; } + fs::remove_file(dir.join("meta.json"))?; Ok(()) } diff --git a/src/obikindex/src/rebuild.rs b/src/obikindex/src/rebuild.rs index 95dc4b8..c7ac4fd 100644 --- a/src/obikindex/src/rebuild.rs +++ b/src/obikindex/src/rebuild.rs @@ -112,6 +112,8 @@ impl KmerIndex { // Write SENTINEL_INDEXED — output is ready to use. fs::File::create(output.join(SENTINEL_INDEXED))?; - KmerIndex::open(output) + let idx = KmerIndex::open(output)?; + idx.pack_matrices()?; + Ok(idx) } }