pub struct AdaptiveStorageProvider<F, V>where
F: StorageProvider,
V: StorageProvider,{ /* private fields */ }
Expand description
Provides adaptive storage selection based on stream characteristics.
Takes two storage providers:
F
: Fixed-length storage provider, used for:- Infinite streams (wrapped in
BoundedStorageProvider
) - Finite streams smaller than or equal to the buffer size
- Infinite streams (wrapped in
V
: Variable-length storage provider, used for:- Finite streams larger than the buffer size
Implementations§
Source§impl<F, V> AdaptiveStorageProvider<F, V>where
F: StorageProvider,
V: StorageProvider,
impl<F, V> AdaptiveStorageProvider<F, V>where
F: StorageProvider,
V: StorageProvider,
Sourcepub fn with_fixed_and_variable(
fixed_storage: F,
variable_storage: V,
buffer_size: NonZeroUsize,
) -> Self
pub fn with_fixed_and_variable( fixed_storage: F, variable_storage: V, buffer_size: NonZeroUsize, ) -> Self
Creates a new AdaptiveStorageProvider
with separate providers for fixed and
variable-length storage.
§Arguments
fixed_storage
- Provider for fixed-length storage, used for infinite streams (wrapped inBoundedStorageProvider
) and finite streams smaller than or equal tobuffer_size
variable_storage
- Provider for variable-length storage, used for finite streams larger thanbuffer_size
buffer_size
- Maximum size for using fixed-length storage
Source§impl<T> AdaptiveStorageProvider<T, T>where
T: StorageProvider,
impl<T> AdaptiveStorageProvider<T, T>where
T: StorageProvider,
Sourcepub fn new(provider: T, buffer_size: NonZeroUsize) -> Selfwhere
T: Clone,
pub fn new(provider: T, buffer_size: NonZeroUsize) -> Selfwhere
T: Clone,
Creates a new AdaptiveStorageProvider
using the same provider type for both fixed
and variable-length storage.
This is a convenience constructor that clones the provider and calls
with_fixed_and_variable
.
Trait Implementations§
Source§impl<F, V> Clone for AdaptiveStorageProvider<F, V>
impl<F, V> Clone for AdaptiveStorageProvider<F, V>
Source§fn clone(&self) -> AdaptiveStorageProvider<F, V>
fn clone(&self) -> AdaptiveStorageProvider<F, V>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<F, V> Debug for AdaptiveStorageProvider<F, V>
impl<F, V> Debug for AdaptiveStorageProvider<F, V>
Source§impl<F, V> StorageProvider for AdaptiveStorageProvider<F, V>where
F: StorageProvider,
V: StorageProvider,
impl<F, V> StorageProvider for AdaptiveStorageProvider<F, V>where
F: StorageProvider,
V: StorageProvider,
Source§type Reader = AdaptiveStorageReader<<F as StorageProvider>::Reader, <V as StorageProvider>::Reader>
type Reader = AdaptiveStorageReader<<F as StorageProvider>::Reader, <V as StorageProvider>::Reader>
Source used to read from the underlying storage.
Source§type Writer = AdaptiveStorageWriter<<F as StorageProvider>::Writer, <V as StorageProvider>::Writer>
type Writer = AdaptiveStorageWriter<<F as StorageProvider>::Writer, <V as StorageProvider>::Writer>
Handle that can write to the underlying storage.
Source§fn into_reader_writer(
self,
content_length: Option<u64>,
) -> Result<(Self::Reader, Self::Writer)>
fn into_reader_writer( self, content_length: Option<u64>, ) -> Result<(Self::Reader, Self::Writer)>
Turn the provider into a reader and writer.
Source§fn max_capacity(&self) -> Option<usize>
fn max_capacity(&self) -> Option<usize>
Returns the maximum number of bytes this provider can hold at a time.
Auto Trait Implementations§
impl<F, V> Freeze for AdaptiveStorageProvider<F, V>
impl<F, V> RefUnwindSafe for AdaptiveStorageProvider<F, V>where
F: RefUnwindSafe,
V: RefUnwindSafe,
impl<F, V> Send for AdaptiveStorageProvider<F, V>
impl<F, V> Sync for AdaptiveStorageProvider<F, V>
impl<F, V> Unpin for AdaptiveStorageProvider<F, V>
impl<F, V> UnwindSafe for AdaptiveStorageProvider<F, V>where
F: UnwindSafe,
V: UnwindSafe,
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