| Crates.io | mycrc |
| lib.rs | mycrc |
| version | 0.3.1 |
| created_at | 2021-08-08 08:14:16.560569+00 |
| updated_at | 2021-08-11 02:15:22.228266+00 |
| description | Create your own cyclic redundancy check (CRC). |
| homepage | |
| repository | https://github.com/kurotakazuki/mycrc |
| max_upload_size | |
| id | 433052 |
| size | 34,674 |
Create your own cyclic redundancy check (CRC).
CRC::new].CRC::checksum]CRC::initialize] -> [CRC::calc_bytes] -> ... -> [CRC::calc_bytes] -> [CRC::finalize]CRC::is_error_free_bytes] to check if bytes [message + checksum] are error-free.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));