pub struct DefaultRateDecoder<E: Engine>(/* private fields */);Expand description
Reed-Solomon decoder using high or low rate as appropriate.
This is basically same as Decoder
except with slightly different API which allows
specifying Engine and DecoderWork.
Trait Implementations§
Source§impl<E: Engine> RateDecoder<E> for DefaultRateDecoder<E>
impl<E: Engine> RateDecoder<E> for DefaultRateDecoder<E>
Source§type Rate = DefaultRate<E>
type Rate = DefaultRate<E>
Rate of this decoder.
Source§fn validate(
original_count: usize,
recovery_count: usize,
shard_bytes: usize,
) -> Result<(), Error>
fn validate( original_count: usize, recovery_count: usize, shard_bytes: usize, ) -> Result<(), Error>
Checks that the shard counts are supported, the shard size is nonzero and even, and
this decoder’s working space fits in a single allocation.
Source§fn add_original_shard<T: AsRef<[u8]>>(
&mut self,
index: usize,
original_shard: T,
) -> Result<(), Error>
fn add_original_shard<T: AsRef<[u8]>>( &mut self, index: usize, original_shard: T, ) -> Result<(), Error>
Source§fn add_recovery_shard<T: AsRef<[u8]>>(
&mut self,
index: usize,
recovery_shard: T,
) -> Result<(), Error>
fn add_recovery_shard<T: AsRef<[u8]>>( &mut self, index: usize, recovery_shard: T, ) -> Result<(), Error>
Source§fn decode(
&mut self,
compute_recovery: bool,
) -> Result<Option<DecoderResult<'_>>, Error>
fn decode( &mut self, compute_recovery: bool, ) -> Result<Option<DecoderResult<'_>>, Error>
Like
Decoder::decode, this reconstructs the
missing shards, or returns Ok(None) if every original was already provided (nothing to
reconstruct). When compute_recovery is set, the missing recovery shards are also
reconstructed into the work buffers. The returned DecoderResult exposes only restored
original shards, so callers of this trait should pass false. Reconstructed recovery
shards are readable through
Decoder::decode_with_recovery and
Decoder::decode_with_recovery_plan.Source§fn into_parts(self) -> (E, DecoderWork)
fn into_parts(self) -> (E, DecoderWork)
Consumes this decoder returning its
Engine and DecoderWork
so that they can be re-used by another decoder.Source§fn new(
original_count: usize,
recovery_count: usize,
shard_bytes: usize,
engine: E,
work: Option<DecoderWork>,
) -> Result<Self, Error>
fn new( original_count: usize, recovery_count: usize, shard_bytes: usize, engine: E, work: Option<DecoderWork>, ) -> Result<Self, Error>
Like
Decoder::new
with Engine to use and optional working space to be re-used.Auto Trait Implementations§
impl<E> Freeze for DefaultRateDecoder<E>where
InnerDecoder<E>: Freeze,
impl<E> RefUnwindSafe for DefaultRateDecoder<E>where
InnerDecoder<E>: RefUnwindSafe,
impl<E> Send for DefaultRateDecoder<E>where
InnerDecoder<E>: Send,
impl<E> Sync for DefaultRateDecoder<E>where
InnerDecoder<E>: Sync,
impl<E> Unpin for DefaultRateDecoder<E>where
InnerDecoder<E>: Unpin,
impl<E> UnsafeUnpin for DefaultRateDecoder<E>where
InnerDecoder<E>: UnsafeUnpin,
impl<E> UnwindSafe for DefaultRateDecoder<E>where
InnerDecoder<E>: 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