Skip to content

Commit f5db878

Browse files
authored
fix: cargo bench and fmt failure in CI (#150)
## Summary `Directory::open_write_inner` returns `InnerWritePtr` (= `Box<dyn TerminatingWrite + Send + Sync>`), but the `merge_segments` benchmark's `NullDirectory` still implemented it returning a bare `Box<dyn TerminatingWrite>` (no `Send + Sync`). This breaks the nightly bench CI job: ``` cargo +nightly bench --no-run --profile=dev --all-features error[E0053]: method `open_write_inner` has an incompatible type for trait --> benches/merge_segments.rs:102:5 ``` The writers it returns (`InMemoryWriter`, `NullWriter`) are already `Send + Sync`, so this is purely a return-type annotation fix. ## Testing `cargo +nightly bench --no-run --profile=dev --all-features` → Finished (verified locally).
1 parent 4ae1265 commit f5db878

7 files changed

Lines changed: 14 additions & 15 deletions

File tree

benches/merge_segments.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,10 @@ impl Directory for NullDirectory {
9999
Ok(true)
100100
}
101101

102-
fn open_write_inner(&self, path: &Path) -> Result<Box<dyn TerminatingWrite>, OpenWriteError> {
102+
fn open_write_inner(
103+
&self,
104+
path: &Path,
105+
) -> Result<Box<dyn TerminatingWrite + Send + Sync>, OpenWriteError> {
103106
let path_buf = path.to_path_buf();
104107
if path.to_string_lossy().ends_with(".fieldnorm") {
105108
let writer = InMemoryWriter {

columnar/src/column_values/u128_based/compact_space/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -529,13 +529,13 @@ impl CompactSpaceDecompressor {
529529
#[cfg(test)]
530530
mod tests {
531531

532+
use common::file_slice::FileSlice;
532533
use itertools::Itertools;
533534
use proptest::prelude::*;
534535

535536
use super::*;
536537
use crate::column_values::u128_based::U128Header;
537538
use crate::column_values::{open_u128_mapped, serialize_column_values_u128};
538-
use common::file_slice::FileSlice;
539539

540540
#[test]
541541
fn compact_space_test() {

src/directory/directory.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use log::Level;
1111
use crate::directory::directory_lock::Lock;
1212
use crate::directory::error::{DeleteError, LockError, OpenReadError, OpenWriteError};
1313
use crate::directory::{
14-
FileHandle, FileSlice, TerminatingWrite, WatchCallback, WatchHandle, WritePtr, InnerWritePtr
14+
FileHandle, FileSlice, InnerWritePtr, TerminatingWrite, WatchCallback, WatchHandle, WritePtr,
1515
};
1616
use crate::index::SegmentMetaInventory;
1717
use crate::IndexMeta;

src/directory/managed_directory.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ use crate::core::MANAGED_FILEPATH;
1111
use crate::directory::error::{DeleteError, LockError, OpenReadError, OpenWriteError};
1212
use crate::directory::footer::{Footer, FooterProxy, FOOTER_LEN};
1313
use crate::directory::{
14-
DirectoryLock, DirectoryPanicHandler, FileHandle, FileSlice, GarbageCollectionResult, Lock,
15-
WatchCallback, WatchHandle, MANAGED_LOCK, META_LOCK, InnerWritePtr
14+
DirectoryLock, DirectoryPanicHandler, FileHandle, FileSlice, GarbageCollectionResult,
15+
InnerWritePtr, Lock, WatchCallback, WatchHandle, MANAGED_LOCK, META_LOCK,
1616
};
1717
use crate::error::DataCorruption;
1818
use crate::index::SegmentMetaInventory;
@@ -310,10 +310,7 @@ impl Directory for ManagedDirectory {
310310
Ok(reader)
311311
}
312312

313-
fn open_write_inner(
314-
&self,
315-
path: &Path,
316-
) -> result::Result<InnerWritePtr, OpenWriteError> {
313+
fn open_write_inner(&self, path: &Path) -> result::Result<InnerWritePtr, OpenWriteError> {
317314
self.register_file_as_managed(path)
318315
.map_err(|io_error| OpenWriteError::wrap_io_error(io_error, path.to_path_buf()))?;
319316
Ok(Box::new(FooterProxy::new(

src/directory/mmap_directory/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ use crate::directory::error::{
2222
DeleteError, LockError, OpenDirectoryError, OpenReadError, OpenWriteError,
2323
};
2424
use crate::directory::{
25-
AntiCallToken, Directory, DirectoryLock, FileHandle, Lock, OwnedBytes, TerminatingWrite,
26-
WatchCallback, WatchHandle, InnerWritePtr
25+
AntiCallToken, Directory, DirectoryLock, FileHandle, InnerWritePtr, Lock, OwnedBytes,
26+
TerminatingWrite, WatchCallback, WatchHandle,
2727
};
2828

2929
pub type ArcBytes = Arc<dyn Deref<Target = [u8]> + Send + Sync + 'static>;

src/directory/ram_directory.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ use super::FileHandle;
1010
use crate::core::META_FILEPATH;
1111
use crate::directory::error::{DeleteError, OpenReadError, OpenWriteError};
1212
use crate::directory::{
13-
AntiCallToken, Directory, FileSlice, TerminatingWrite, WatchCallback, WatchCallbackList,
14-
WatchHandle, InnerWritePtr
13+
AntiCallToken, Directory, FileSlice, InnerWritePtr, TerminatingWrite, WatchCallback,
14+
WatchCallbackList, WatchHandle,
1515
};
1616

1717
/// Writer associated with the [`RamDirectory`].

sstable/src/lib.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,8 @@ pub mod streamer;
4949
pub mod value;
5050

5151
mod index;
52-
pub use index::{BlockAddr, SSTableIndex, SSTableIndexBuilder};
53-
5452
pub use batch::{BatchedTermInfoIter, SortedTermSlice, sort_and_dedupe_terms};
53+
pub use index::{BlockAddr, SSTableIndex, SSTableIndexBuilder};
5554

5655
pub(crate) mod vint;
5756
pub use dictionary::{Dictionary, TermOrdHit};

0 commit comments

Comments
 (0)