FileIOService

Trait FileIOService 

Source
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§

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

fn get_config(&self) -> FileIOConfig

Gets the current configuration

Source

fn update_config(&mut self, config: FileIOConfig)

Updates the configuration

Source

fn get_stats(&self) -> FileIOStats

Gets I/O statistics

Source

fn reset_stats(&mut self)

Resets I/O statistics

Source

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

Source

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

Source

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

Source

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

Source§

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,

Source§

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,

Source§

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,

Source§

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,

Source§

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,

Source§

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,

Source§

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,

Source§

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,

Source§

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,

Source§

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,

Source§

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,

Source§

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,

Source§

fn get_config(&self) -> FileIOConfig

Source§

fn update_config(&mut self, _config: FileIOConfig)

Source§

fn get_stats(&self) -> FileIOStats

Source§

fn reset_stats(&mut self)

Source§

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,

Source§

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,

Source§

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,

Source§

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,

Implementors§