pub trait RateDecoder<E: Engine>where
Self: Sized,{
type Rate: Rate<E>;
// Required methods
fn add_original_shard<T: AsRef<[u8]>>(
&mut self,
index: usize,
original_shard: T,
) -> Result<(), Error>;
fn add_recovery_shard<T: AsRef<[u8]>>(
&mut self,
index: usize,
recovery_shard: T,
) -> Result<(), Error>;
fn decode(
&mut self,
compute_recovery: bool,
) -> Result<Option<DecoderResult<'_>>, Error>;
fn into_parts(self) -> (E, DecoderWork);
fn new(
original_count: usize,
recovery_count: usize,
shard_bytes: usize,
engine: E,
work: Option<DecoderWork>,
) -> Result<Self, Error>;
fn reset(
&mut self,
original_count: usize,
recovery_count: usize,
shard_bytes: usize,
) -> Result<(), Error>;
// Provided methods
fn supports(original_count: usize, recovery_count: usize) -> bool { ... }
fn validate(
original_count: usize,
recovery_count: usize,
shard_bytes: usize,
) -> Result<(), Error> { ... }
}Expand description
Reed-Solomon decoder using specific rate.
Required Associated Types§
Required Methods§
Sourcefn 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>
Sourcefn 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>
Sourcefn decode(
&mut self,
compute_recovery: bool,
) -> Result<Option<DecoderResult<'_>>, Error>
fn decode( &mut self, compute_recovery: bool, ) -> Result<Option<DecoderResult<'_>>, Error>
Like Decoder::decode: 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.
Sourcefn 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.
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".