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>;
fn validate(
original_count: usize,
recovery_count: usize,
shard_bytes: usize,
) -> Result<(), Error>;
// Provided method
fn supports(original_count: usize, recovery_count: usize) -> bool { ... }
}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, 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.
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.
Sourcefn 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.
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".