Struct reed_solomon_simd::ReedSolomonEncoder

source ·
pub struct ReedSolomonEncoder(/* private fields */);
Expand description

Reed-Solomon encoder using DefaultEngine and DefaultRate.

Implementations§

source§

impl ReedSolomonEncoder

source

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.

source

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.

source

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.

source

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.
source

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_simd::ReedSolomonEncoder;

assert_eq!(ReedSolomonEncoder::supports(60_000, 4_000), true);
assert_eq!(ReedSolomonEncoder::supports(60_000, 5_000), false);

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.