pub struct ReedSolomon { /* private fields */ }Implementations§
Source§impl ReedSolomon
impl ReedSolomon
Sourcepub const fn new(parity: u8) -> Result<Self, RSConstructorError>
pub const fn new(parity: u8) -> Result<Self, RSConstructorError>
Creates a new Reed-Solomon codec with parameters n and k.
§Errors
ParityTooHighis returned if parity > 127
pub const fn parity(&self) -> u8
pub const fn parity_bytes(&self) -> u8
Sourcepub fn generate_parity(
&self,
message: &[u8],
) -> Result<Buffer, RSGenerateParityError>
pub fn generate_parity( &self, message: &[u8], ) -> Result<Buffer, RSGenerateParityError>
Generates parity bytes.
§Errors
BufferErrorif an allocation failsPolynomialErrorif generator polynomial is zero (shouldn’t happen)
Sourcepub fn encode(&self, message: &[u8]) -> Result<Buffer, RSEncodeError>
pub fn encode(&self, message: &[u8]) -> Result<Buffer, RSEncodeError>
Encodes a message into a codeword.
§Errors
ps_buffer::BufferErroris returned if memory allocation fails.PolynomialErrorif generator polynomial is zero (shouldn’t happen)
Sourcepub fn compute_syndromes(
num_parity_bytes: impl Into<usize>,
received: &[u8],
) -> Result<Buffer, BufferError>
pub fn compute_syndromes( num_parity_bytes: impl Into<usize>, received: &[u8], ) -> Result<Buffer, BufferError>
Sourcepub fn compute_syndromes_detached(
parity: &[u8],
data: &[u8],
) -> Result<Buffer, BufferError>
pub fn compute_syndromes_detached( parity: &[u8], data: &[u8], ) -> Result<Buffer, BufferError>
Sourcepub fn validate_detached(
parity: &[u8],
data: &[u8],
) -> Result<Option<Buffer>, RSValidationError>
pub fn validate_detached( parity: &[u8], data: &[u8], ) -> Result<Option<Buffer>, RSValidationError>
Validates a regregated (parity, message) pair.
§Errors
Err(syndromes) is returned if the codeword is invalid.
Sourcepub fn compute_errors(
&self,
length: usize,
syndromes: &[u8],
) -> Result<Option<Buffer>, RSComputeErrorsError>
pub fn compute_errors( &self, length: usize, syndromes: &[u8], ) -> Result<Option<Buffer>, RSComputeErrorsError>
§Errors
ps_buffer::BufferErroris returned if memory allocation fails.RSDecodeError::TooManyErrorsis returned if the input is unrecoverable.
Sourcepub fn correct<'lt>(
&self,
received: &'lt [u8],
) -> Result<Cow<'lt>, RSDecodeError>
pub fn correct<'lt>( &self, received: &'lt [u8], ) -> Result<Cow<'lt>, RSDecodeError>
Corrects a received codeword, returning the corrected codeword.
§Errors
ps_buffer::BufferErroris returned if memory allocation fails.RSDecodeErroris propagated fromReedSolomon::compute_errors.
Sourcepub fn correct_in_place(&self, received: &mut [u8]) -> Result<(), RSDecodeError>
pub fn correct_in_place(&self, received: &mut [u8]) -> Result<(), RSDecodeError>
Corrects a received codeword in-place.
§Errors
ps_buffer::BufferErroris returned if memory allocation fails.RSDecodeErroris propagated fromReedSolomon::compute_errors.RSDecodeError::TooManyErrorsis returned if the data is unrecoverable.
Sourcepub fn decode<'lt>(
&self,
received: &'lt [u8],
) -> Result<Codeword<'lt>, RSDecodeError>
pub fn decode<'lt>( &self, received: &'lt [u8], ) -> Result<Codeword<'lt>, RSDecodeError>
Decodes a received codeword, correcting errors if possible.
§Errors
ps_buffer::BufferErroris returned if memory allocation fails.RSDecodeErroris propagated fromReedSolomon::compute_errors.
Sourcepub fn correct_detached<'lt>(
parity: &[u8],
data: &'lt [u8],
) -> Result<Codeword<'lt>, RSDecodeError>
pub fn correct_detached<'lt>( parity: &[u8], data: &'lt [u8], ) -> Result<Codeword<'lt>, RSDecodeError>
Corrects a message based on detached parity bytes.
§Errors
ps_buffer::BufferErroris returned if memory allocation fails.RSDecodeErroris propagated fromReedSolomon::compute_errors.
Sourcepub fn correct_detached_data_in_place(
parity: &[u8],
data: &mut [u8],
) -> Result<(), RSDecodeError>
pub fn correct_detached_data_in_place( parity: &[u8], data: &mut [u8], ) -> Result<(), RSDecodeError>
Corrects a message based on detached parity bytes.
§Errors
RSDecodeErroris returned ifdatais not recoverable.
Sourcepub fn correct_detached_in_place(
parity: &mut [u8],
data: &mut [u8],
) -> Result<(), RSDecodeError>
pub fn correct_detached_in_place( parity: &mut [u8], data: &mut [u8], ) -> Result<(), RSDecodeError>
Corrects a message based on detached parity bytes. Also corrects the parity bytes.
§Errors
RSDecodeErroris propagated fromReedSolomon::compute_errors.
pub fn apply_corrections(target: &mut [u8], corrections: impl AsRef<[u8]>)
pub fn apply_corrections_detached( parity: &mut [u8], data: &mut [u8], corrections: impl AsRef<[u8]>, )
Trait Implementations§
Source§impl Clone for ReedSolomon
impl Clone for ReedSolomon
Source§fn clone(&self) -> ReedSolomon
fn clone(&self) -> ReedSolomon
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ReedSolomon
impl Debug for ReedSolomon
Source§impl Hash for ReedSolomon
impl Hash for ReedSolomon
Source§impl Ord for ReedSolomon
impl Ord for ReedSolomon
Source§fn cmp(&self, other: &ReedSolomon) -> Ordering
fn cmp(&self, other: &ReedSolomon) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for ReedSolomon
impl PartialEq for ReedSolomon
Source§impl PartialOrd for ReedSolomon
impl PartialOrd for ReedSolomon
impl Copy for ReedSolomon
impl Eq for ReedSolomon
impl StructuralPartialEq for ReedSolomon
Auto Trait Implementations§
impl Freeze for ReedSolomon
impl RefUnwindSafe for ReedSolomon
impl Send for ReedSolomon
impl Sync for ReedSolomon
impl Unpin for ReedSolomon
impl UnwindSafe for ReedSolomon
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