pub trait FileIOService: Send + Sync {
Show 20 methods
// Required methods
fn read_file_chunks<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
options: ReadOptions,
) -> Pin<Box<dyn Future<Output = Result<ReadResult, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn read_file_mmap<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
options: ReadOptions,
) -> Pin<Box<dyn Future<Output = Result<ReadResult, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn write_file_chunks<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
chunks: &'life2 [FileChunk],
options: WriteOptions,
) -> Pin<Box<dyn Future<Output = Result<WriteResult, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn write_file_data<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
data: &'life2 [u8],
options: WriteOptions,
) -> Pin<Box<dyn Future<Output = Result<WriteResult, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn get_file_info<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<FileInfo, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn file_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<bool, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn delete_file<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<(), PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn copy_file<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
source: &'life1 Path,
destination: &'life2 Path,
options: WriteOptions,
) -> Pin<Box<dyn Future<Output = Result<WriteResult, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn move_file<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
source: &'life1 Path,
destination: &'life2 Path,
options: WriteOptions,
) -> Pin<Box<dyn Future<Output = Result<WriteResult, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn create_directory<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<(), PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn directory_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<bool, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn list_directory<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<Vec<FileInfo>, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_config(&self) -> FileIOConfig;
fn update_config(&mut self, config: FileIOConfig);
fn get_stats(&self) -> FileIOStats;
fn reset_stats(&mut self);
fn validate_file_integrity<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
expected_checksum: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<bool, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn calculate_file_checksum<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<String, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn stream_file_chunks<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
options: ReadOptions,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = Result<FileChunk, PipelineError>> + Send>>, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn write_chunk_to_file<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
chunk: &'life2 FileChunk,
options: WriteOptions,
is_first_chunk: bool,
) -> Pin<Box<dyn Future<Output = Result<WriteResult, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
}Expand description
Trait for file I/O operations with memory mapping support
Required Methods§
Sourcefn read_file_chunks<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
options: ReadOptions,
) -> Pin<Box<dyn Future<Output = Result<ReadResult, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read_file_chunks<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
options: ReadOptions,
) -> Pin<Box<dyn Future<Output = Result<ReadResult, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Reads a file and returns it as chunks
Sourcefn read_file_mmap<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
options: ReadOptions,
) -> Pin<Box<dyn Future<Output = Result<ReadResult, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read_file_mmap<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
options: ReadOptions,
) -> Pin<Box<dyn Future<Output = Result<ReadResult, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Reads a file using memory mapping if possible
Sourcefn write_file_chunks<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
chunks: &'life2 [FileChunk],
options: WriteOptions,
) -> Pin<Box<dyn Future<Output = Result<WriteResult, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn write_file_chunks<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
chunks: &'life2 [FileChunk],
options: WriteOptions,
) -> Pin<Box<dyn Future<Output = Result<WriteResult, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Writes chunks to a file
Sourcefn write_file_data<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
data: &'life2 [u8],
options: WriteOptions,
) -> Pin<Box<dyn Future<Output = Result<WriteResult, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn write_file_data<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
data: &'life2 [u8],
options: WriteOptions,
) -> Pin<Box<dyn Future<Output = Result<WriteResult, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Writes data directly to a file
Sourcefn get_file_info<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<FileInfo, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_file_info<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<FileInfo, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Gets information about a file
Sourcefn file_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<bool, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn file_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<bool, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Checks if a file exists
Sourcefn delete_file<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<(), PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_file<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<(), PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Deletes a file
Sourcefn copy_file<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
source: &'life1 Path,
destination: &'life2 Path,
options: WriteOptions,
) -> Pin<Box<dyn Future<Output = Result<WriteResult, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn copy_file<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
source: &'life1 Path,
destination: &'life2 Path,
options: WriteOptions,
) -> Pin<Box<dyn Future<Output = Result<WriteResult, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Copies a file
Sourcefn move_file<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
source: &'life1 Path,
destination: &'life2 Path,
options: WriteOptions,
) -> Pin<Box<dyn Future<Output = Result<WriteResult, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn move_file<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
source: &'life1 Path,
destination: &'life2 Path,
options: WriteOptions,
) -> Pin<Box<dyn Future<Output = Result<WriteResult, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Moves a file
Sourcefn create_directory<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<(), PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create_directory<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<(), PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Creates a directory
Sourcefn directory_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<bool, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn directory_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<bool, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Checks if a directory exists
Sourcefn list_directory<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<Vec<FileInfo>, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list_directory<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<Vec<FileInfo>, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Lists files in a directory
Sourcefn get_config(&self) -> FileIOConfig
fn get_config(&self) -> FileIOConfig
Gets the current configuration
Sourcefn update_config(&mut self, config: FileIOConfig)
fn update_config(&mut self, config: FileIOConfig)
Updates the configuration
Sourcefn get_stats(&self) -> FileIOStats
fn get_stats(&self) -> FileIOStats
Gets I/O statistics
Sourcefn reset_stats(&mut self)
fn reset_stats(&mut self)
Resets I/O statistics
Sourcefn validate_file_integrity<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
expected_checksum: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<bool, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn validate_file_integrity<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
expected_checksum: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<bool, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Validates file integrity using checksums
Sourcefn calculate_file_checksum<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<String, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn calculate_file_checksum<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<String, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Calculates file checksum
Sourcefn stream_file_chunks<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
options: ReadOptions,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = Result<FileChunk, PipelineError>> + Send>>, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn stream_file_chunks<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
options: ReadOptions,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = Result<FileChunk, PipelineError>> + Send>>, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Streams file chunks for processing
Sourcefn write_chunk_to_file<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
chunk: &'life2 FileChunk,
options: WriteOptions,
is_first_chunk: bool,
) -> Pin<Box<dyn Future<Output = Result<WriteResult, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn write_chunk_to_file<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
chunk: &'life2 FileChunk,
options: WriteOptions,
is_first_chunk: bool,
) -> Pin<Box<dyn Future<Output = Result<WriteResult, PipelineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Writes a single chunk to a file (for streaming writes)
Implementations on Foreign Types§
Source§impl FileIOService for Arc<dyn FileIOService>
Implementation of FileIOService for Arc<dyn FileIOService>
This enables shared ownership of FileIOService trait objects
impl FileIOService for Arc<dyn FileIOService>
Implementation of FileIOService for Arc<dyn FileIOService>
This enables shared ownership of FileIOService trait objects