Skip to main content

RateDecoder

Trait RateDecoder 

Source
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§

Source

type Rate: Rate<E>

Rate of this decoder.

Required Methods§

Source

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>

Source

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)

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>

Like Decoder::new with Engine to use and optional working space to be re-used.

Source

fn reset( &mut self, original_count: usize, recovery_count: usize, shard_bytes: usize, ) -> Result<(), Error>

Source

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.

Provided Methods§

Source

fn supports(original_count: usize, recovery_count: usize) -> bool

Returns true if given original_count / recovery_count combination is supported.

This is same as Rate::supports.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§