pub struct ReedSolomonEncoder(/* private fields */);
Expand description
Reed-Solomon encoder using DefaultEngine
and DefaultRate
.
Implementations§
Source§impl ReedSolomonEncoder
impl ReedSolomonEncoder
Sourcepub fn add_original_shard<T: AsRef<[u8]>>(
&mut self,
original_shard: T,
) -> Result<(), Error>
pub fn add_original_shard<T: AsRef<[u8]>>( &mut self, original_shard: T, ) -> Result<(), Error>
Adds one original shard to the encoder.
Original shards have indexes 0..original_count
corresponding to the order
in which they are added and these same indexes must be used when decoding.
See basic usage for an example.
Sourcepub fn encode(&mut self) -> Result<EncoderResult<'_>, Error>
pub fn encode(&mut self) -> Result<EncoderResult<'_>, Error>
Encodes the added original shards returning EncoderResult
which contains the generated recovery shards.
When returned EncoderResult
is dropped the encoder is
automatically reset
and ready for new round of encoding.
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 encoder 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 encoder to given configuration.
- Added original 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::ReedSolomonEncoder;
assert_eq!(ReedSolomonEncoder::supports(60_000, 4_000), true);
assert_eq!(ReedSolomonEncoder::supports(60_000, 5_000), false);
Auto Trait Implementations§
impl Freeze for ReedSolomonEncoder
impl RefUnwindSafe for ReedSolomonEncoder
impl Send for ReedSolomonEncoder
impl Sync for ReedSolomonEncoder
impl Unpin for ReedSolomonEncoder
impl UnwindSafe for ReedSolomonEncoder
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