pub struct AsyncArchiveReader<R> { /* private fields */ }Available on crate feature
async only.Expand description
Async-aware MPQ archive reader with resource protection
Implementations§
Source§impl<R: AsyncRead + AsyncSeek + Unpin + Send + 'static> AsyncArchiveReader<R>
impl<R: AsyncRead + AsyncSeek + Unpin + Send + 'static> AsyncArchiveReader<R>
Sourcepub fn new(reader: R, session_tracker: Arc<SessionTracker>) -> Self
pub fn new(reader: R, session_tracker: Arc<SessionTracker>) -> Self
Create a new async archive reader with default configuration
Sourcepub fn with_config(
reader: R,
config: AsyncConfig,
session_tracker: Arc<SessionTracker>,
) -> Self
pub fn with_config( reader: R, config: AsyncConfig, session_tracker: Arc<SessionTracker>, ) -> Self
Create a new async archive reader with custom configuration
Sourcepub fn with_security_limits(
reader: R,
config: AsyncConfig,
session_tracker: Arc<SessionTracker>,
security_limits: SecurityLimits,
) -> Self
pub fn with_security_limits( reader: R, config: AsyncConfig, session_tracker: Arc<SessionTracker>, security_limits: SecurityLimits, ) -> Self
Create with custom security limits
Sourcepub async fn read_at(&self, offset: u64, buffer: &mut [u8]) -> Result<usize>
pub async fn read_at(&self, offset: u64, buffer: &mut [u8]) -> Result<usize>
Read data at a specific offset with timeout and resource protection
Sourcepub async fn read_exact_at(&self, offset: u64, buffer: &mut [u8]) -> Result<()>
pub async fn read_exact_at(&self, offset: u64, buffer: &mut [u8]) -> Result<()>
Read an exact number of bytes at a specific offset with security validation
Sourcepub async fn extract_files_concurrent(
&self,
file_requests: Vec<(String, u64, u64)>,
) -> Result<Vec<(String, Vec<u8>)>>
pub async fn extract_files_concurrent( &self, file_requests: Vec<(String, u64, u64)>, ) -> Result<Vec<(String, Vec<u8>)>>
Perform multiple file extractions concurrently with bounded parallelism
Sourcepub fn create_decompression_monitor(
&self,
expected_size: u64,
compression_method: u8,
file_path: Option<&str>,
) -> Result<Arc<AsyncDecompressionMonitor>>
pub fn create_decompression_monitor( &self, expected_size: u64, compression_method: u8, file_path: Option<&str>, ) -> Result<Arc<AsyncDecompressionMonitor>>
Create a decompression monitor for async operations
Sourcepub fn get_stats(&self) -> AsyncOperationStats
pub fn get_stats(&self) -> AsyncOperationStats
Get current async operation statistics
Sourcepub fn is_under_pressure(&self) -> bool
pub fn is_under_pressure(&self) -> bool
Check if the reader is under resource pressure
Trait Implementations§
Auto Trait Implementations§
impl<R> Freeze for AsyncArchiveReader<R>
impl<R> !RefUnwindSafe for AsyncArchiveReader<R>
impl<R> Send for AsyncArchiveReader<R>where
R: Send,
impl<R> Sync for AsyncArchiveReader<R>where
R: Send,
impl<R> Unpin for AsyncArchiveReader<R>
impl<R> !UnwindSafe for AsyncArchiveReader<R>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more