pub trait DvHandler: Send + 'static {
// Required methods
fn write(&mut self, path: &str, pos: i64) -> StreamExecutorResult<()>;
fn flush<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = StreamExecutorResult<Option<SinkMetadata>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}Expand description
Trait abstracting DV (Deletion Vector) file operations for testability.
Implementations are responsible for reading existing DVs, merging new delete positions, writing DV files, and returning the metadata that should be committed on the current barrier.
Required Methods§
fn write(&mut self, path: &str, pos: i64) -> StreamExecutorResult<()>
fn flush<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = StreamExecutorResult<Option<SinkMetadata>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".