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]>, )
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