Struct stm32_hal2::crc::Polynomial
source · pub struct Polynomial(/* private fields */);
Expand description
A CRC polynomial.
The STM32H7 CRC unit only supports odd polynomials, and the constructors
will check to ensure the polynomial is odd unless the _unchecked
variants
are used.
Even polynomials are essentially never used in CRCs, so you most likely don’t need to worry about this if you aren’t creating your own algorithm.
A polynomial being even means that the least significant bit is 0
in the polynomial’s normal representation.
Implementations§
source§impl Polynomial
impl Polynomial
sourcepub fn bits7(poly: u8) -> Result<Self, PolynomialError>
pub fn bits7(poly: u8) -> Result<Self, PolynomialError>
Create a 7-bit polynomial. Returns an error if the polynomial passed has the MSB set or is even.
sourcepub fn bits8(poly: u8) -> Result<Self, PolynomialError>
pub fn bits8(poly: u8) -> Result<Self, PolynomialError>
Create an 8-bit polynomial. Returns an error if the polynomial passed is even.
sourcepub fn bits16(poly: u16) -> Result<Self, PolynomialError>
pub fn bits16(poly: u16) -> Result<Self, PolynomialError>
Create a 16-bit polynomial. Returns an error if the polynomial passed is even.
sourcepub fn bits32(poly: u32) -> Result<Self, PolynomialError>
pub fn bits32(poly: u32) -> Result<Self, PolynomialError>
Create a 32-bit polynomial. Returns an error if the polynomial passed is even.
sourcepub const fn bits7_unchecked(poly: u8) -> Self
pub const fn bits7_unchecked(poly: u8) -> Self
Create a 7-bit polynomial. If the polynomial passed is even the CRC unit will give incorrect results.
sourcepub const fn bits8_unchecked(poly: u8) -> Self
pub const fn bits8_unchecked(poly: u8) -> Self
Create an 8-bit polynomial. If the polynomial passed is even the CRC unit will give incorrect results.
sourcepub const fn bits16_unchecked(poly: u16) -> Self
pub const fn bits16_unchecked(poly: u16) -> Self
Create a 16-bit polynomial. If the polynomial passed is even the CRC unit will give incorrect results.
sourcepub const fn bits32_unchecked(poly: u32) -> Self
pub const fn bits32_unchecked(poly: u32) -> Self
Create a 32-bit polynomial. If the polynomial passed is even the CRC unit will give incorrect results.
Trait Implementations§
source§impl Clone for Polynomial
impl Clone for Polynomial
source§fn clone(&self) -> Polynomial
fn clone(&self) -> Polynomial
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for Polynomial
impl Debug for Polynomial
source§impl Default for Polynomial
impl Default for Polynomial
source§impl PartialEq for Polynomial
impl PartialEq for Polynomial
source§fn eq(&self, other: &Polynomial) -> bool
fn eq(&self, other: &Polynomial) -> bool
self
and other
values to be equal, and is used
by ==
.