Skip to main content

Crate mycrc

Crate mycrc 

Source
Expand description

§My CRC

Crate API

Create your own cyclic redundancy check (CRC).

§Getting Started

  1. Create your own CRC using CRC::new.
  2. Create checksum from message.
  3. Use CRC::is_error_free_bytes to check if bytes [message + checksum] are error-free.

§Example

use mycrc::{CRC, Endian};

// message
const CHECK_BYTES: &[u8] = b"123456789";

// Create your own CRC.
let mut crc32c = CRC::<u32>::new(
    Endian::Little, // endian
    0x1edc6f41, // poly
    0xffffffff, // init
    true, // refin
    true, // refout
    0xffffffff, // xorout
);

// Checksum
assert_eq!(crc32c.checksum(CHECK_BYTES), 0xe3069283);
// Is error-free?
let checksum = crc32c.checksum_to_endian_bytes(CHECK_BYTES);
let bytes = [CHECK_BYTES, &checksum].concat();
assert!(crc32c.is_error_free_bytes(&bytes));

Structs§

Algorithm
CRC algorithm.
CRC
Cyclic redundancy check.

Enums§

Endian
Endianness