pub struct ReedSolomonDecoder(/* private fields */);
Expand description
Reed-Solomon decoder using DefaultEngine
and DefaultRate
.
Implementations§
Source§impl ReedSolomonDecoder
impl ReedSolomonDecoder
Sourcepub fn add_original_shard<T: AsRef<[u8]>>(
&mut self,
index: usize,
original_shard: T,
) -> Result<(), Error>
pub fn add_original_shard<T: AsRef<[u8]>>( &mut self, index: usize, original_shard: T, ) -> Result<(), Error>
Adds one original shard to the decoder.
- Shards can be added in any order.
- Index must be the same that was used in encoding.
See basic usage for an example.
Sourcepub fn add_recovery_shard<T: AsRef<[u8]>>(
&mut self,
index: usize,
recovery_shard: T,
) -> Result<(), Error>
pub fn add_recovery_shard<T: AsRef<[u8]>>( &mut self, index: usize, recovery_shard: T, ) -> Result<(), Error>
Adds one recovery shard to the decoder.
- Shards can be added in any order.
- Index must be the same that was used in encoding.
See basic usage for an example.
Sourcepub fn decode(&mut self) -> Result<DecoderResult<'_>, Error>
pub fn decode(&mut self) -> Result<DecoderResult<'_>, Error>
Decodes the added shards returning DecoderResult
which contains the restored original shards.
When returned DecoderResult
is dropped the decoder is
automatically reset
and ready for new round of decoding.
See basic usage for an example.
Sourcepub fn new(
original_count: usize,
recovery_count: usize,
shard_bytes: usize,
) -> Result<Self, Error>
pub fn new( original_count: usize, recovery_count: usize, shard_bytes: usize, ) -> Result<Self, Error>
Creates new decoder with given configuration and allocates required working space.
See basic usage for an example.
Sourcepub fn reset(
&mut self,
original_count: usize,
recovery_count: usize,
shard_bytes: usize,
) -> Result<(), Error>
pub fn reset( &mut self, original_count: usize, recovery_count: usize, shard_bytes: usize, ) -> Result<(), Error>
Resets decoder to given configuration.
- Added shards are forgotten.
- Existing working space is re-used if it’s large enough or re-allocated otherwise.
Sourcepub fn supports(original_count: usize, recovery_count: usize) -> bool
pub fn supports(original_count: usize, recovery_count: usize) -> bool
Returns true
if given original_count
/ recovery_count
combination is supported.
§Examples
use reed_solomon_16::ReedSolomonDecoder;
assert_eq!(ReedSolomonDecoder::supports(60_000, 4_000), true);
assert_eq!(ReedSolomonDecoder::supports(60_000, 5_000), false);
Auto Trait Implementations§
impl Freeze for ReedSolomonDecoder
impl RefUnwindSafe for ReedSolomonDecoder
impl Send for ReedSolomonDecoder
impl Sync for ReedSolomonDecoder
impl Unpin for ReedSolomonDecoder
impl UnwindSafe for ReedSolomonDecoder
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