pub struct Encoder(/* private fields */);Expand description
Reed-Solomon encoder using DefaultEngine and DefaultRate.
Implementations§
Source§impl Encoder
impl Encoder
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 commonware_cryptography::reed_solomon::Encoder;
assert_eq!(Encoder::supports(60_000, 4_000), true);
assert_eq!(Encoder::supports(60_000, 5_000), false);Auto Trait Implementations§
impl !RefUnwindSafe for Encoder
impl !UnwindSafe for Encoder
impl Freeze for Encoder
impl Send for Encoder
impl Sync for Encoder
impl Unpin for Encoder
impl UnsafeUnpin for Encoder
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more