fcrc 0.1.0

Fast-CRC is a generic CRC implementation using SIMD instructions when available and a fallback when not.
Documentation
// generated by build/generate_models.rs
use super::Model;
/// CRC-8 Model
pub type Model_u8 = Model<u8>;
/// CRC-16 Model
pub type Model_u16 = Model<u16>;
/// CRC-32 Model
pub type Model_u32 = Model<u32>;
/// CRC-64 Model
pub type Model_u64 = Model<u64>;
/// CRC-128 Model
pub type Model_u128 = Model<u128>;
/// Describes "CRC-3/GSM" 
#[no_mangle]
pub static CRC_3_GSM: Model_u8 = Model_u8 { width: 3, poly: 0x3, init: 0x0, refin: false, refout: false, xorout: 0x7, check: 0x4, residue: 0x2, name: "CRC-3/GSM\0".as_ptr()};
/// Describes "CRC-3/ROHC" 
#[no_mangle]
pub static CRC_3_ROHC: Model_u8 = Model_u8 { width: 3, poly: 0x3, init: 0x7, refin: true, refout: true, xorout: 0x0, check: 0x6, residue: 0x0, name: "CRC-3/ROHC\0".as_ptr()};
/// Describes "CRC-4/G-704" 
#[no_mangle]
pub static CRC_4_G_704: Model_u8 = Model_u8 { width: 4, poly: 0x3, init: 0x0, refin: true, refout: true, xorout: 0x0, check: 0x7, residue: 0x0, name: "CRC-4/G-704\0".as_ptr()};
/// Describes "CRC-4/INTERLAKEN" 
#[no_mangle]
pub static CRC_4_INTERLAKEN: Model_u8 = Model_u8 { width: 4, poly: 0x3, init: 0xf, refin: false, refout: false, xorout: 0xf, check: 0xb, residue: 0x2, name: "CRC-4/INTERLAKEN\0".as_ptr()};
/// Describes "CRC-5/EPC-C1G2" 
#[no_mangle]
pub static CRC_5_EPC_C1G2: Model_u8 = Model_u8 { width: 5, poly: 0x09, init: 0x09, refin: false, refout: false, xorout: 0x00, check: 0x00, residue: 0x00, name: "CRC-5/EPC-C1G2\0".as_ptr()};
/// Describes "CRC-5/G-704" 
#[no_mangle]
pub static CRC_5_G_704: Model_u8 = Model_u8 { width: 5, poly: 0x15, init: 0x00, refin: true, refout: true, xorout: 0x00, check: 0x07, residue: 0x00, name: "CRC-5/G-704\0".as_ptr()};
/// Describes "CRC-5/USB" 
#[no_mangle]
pub static CRC_5_USB: Model_u8 = Model_u8 { width: 5, poly: 0x05, init: 0x1f, refin: true, refout: true, xorout: 0x1f, check: 0x19, residue: 0x06, name: "CRC-5/USB\0".as_ptr()};
/// Describes "CRC-6/CDMA2000-A" 
#[no_mangle]
pub static CRC_6_CDMA2000_A: Model_u8 = Model_u8 { width: 6, poly: 0x27, init: 0x3f, refin: false, refout: false, xorout: 0x00, check: 0x0d, residue: 0x00, name: "CRC-6/CDMA2000-A\0".as_ptr()};
/// Describes "CRC-6/CDMA2000-B" 
#[no_mangle]
pub static CRC_6_CDMA2000_B: Model_u8 = Model_u8 { width: 6, poly: 0x07, init: 0x3f, refin: false, refout: false, xorout: 0x00, check: 0x3b, residue: 0x00, name: "CRC-6/CDMA2000-B\0".as_ptr()};
/// Describes "CRC-6/DARC" 
#[no_mangle]
pub static CRC_6_DARC: Model_u8 = Model_u8 { width: 6, poly: 0x19, init: 0x00, refin: true, refout: true, xorout: 0x00, check: 0x26, residue: 0x00, name: "CRC-6/DARC\0".as_ptr()};
/// Describes "CRC-6/G-704" 
#[no_mangle]
pub static CRC_6_G_704: Model_u8 = Model_u8 { width: 6, poly: 0x03, init: 0x00, refin: true, refout: true, xorout: 0x00, check: 0x06, residue: 0x00, name: "CRC-6/G-704\0".as_ptr()};
/// Describes "CRC-6/GSM" 
#[no_mangle]
pub static CRC_6_GSM: Model_u8 = Model_u8 { width: 6, poly: 0x2f, init: 0x00, refin: false, refout: false, xorout: 0x3f, check: 0x13, residue: 0x3a, name: "CRC-6/GSM\0".as_ptr()};
/// Describes "CRC-7/MMC" 
#[no_mangle]
pub static CRC_7_MMC: Model_u8 = Model_u8 { width: 7, poly: 0x09, init: 0x00, refin: false, refout: false, xorout: 0x00, check: 0x75, residue: 0x00, name: "CRC-7/MMC\0".as_ptr()};
/// Describes "CRC-7/ROHC" 
#[no_mangle]
pub static CRC_7_ROHC: Model_u8 = Model_u8 { width: 7, poly: 0x4f, init: 0x7f, refin: true, refout: true, xorout: 0x00, check: 0x53, residue: 0x00, name: "CRC-7/ROHC\0".as_ptr()};
/// Describes "CRC-7/UMTS" 
#[no_mangle]
pub static CRC_7_UMTS: Model_u8 = Model_u8 { width: 7, poly: 0x45, init: 0x00, refin: false, refout: false, xorout: 0x00, check: 0x61, residue: 0x00, name: "CRC-7/UMTS\0".as_ptr()};
/// Describes "CRC-8/AUTOSAR" 
#[no_mangle]
pub static CRC_8_AUTOSAR: Model_u8 = Model_u8 { width: 8, poly: 0x2f, init: 0xff, refin: false, refout: false, xorout: 0xff, check: 0xdf, residue: 0x42, name: "CRC-8/AUTOSAR\0".as_ptr()};
/// Describes "CRC-8/BLUETOOTH" 
#[no_mangle]
pub static CRC_8_BLUETOOTH: Model_u8 = Model_u8 { width: 8, poly: 0xa7, init: 0x00, refin: true, refout: true, xorout: 0x00, check: 0x26, residue: 0x00, name: "CRC-8/BLUETOOTH\0".as_ptr()};
/// Describes "CRC-8/CDMA2000" 
#[no_mangle]
pub static CRC_8_CDMA2000: Model_u8 = Model_u8 { width: 8, poly: 0x9b, init: 0xff, refin: false, refout: false, xorout: 0x00, check: 0xda, residue: 0x00, name: "CRC-8/CDMA2000\0".as_ptr()};
/// Describes "CRC-8/DARC" 
#[no_mangle]
pub static CRC_8_DARC: Model_u8 = Model_u8 { width: 8, poly: 0x39, init: 0x00, refin: true, refout: true, xorout: 0x00, check: 0x15, residue: 0x00, name: "CRC-8/DARC\0".as_ptr()};
/// Describes "CRC-8/DVB-S2" 
#[no_mangle]
pub static CRC_8_DVB_S2: Model_u8 = Model_u8 { width: 8, poly: 0xd5, init: 0x00, refin: false, refout: false, xorout: 0x00, check: 0xbc, residue: 0x00, name: "CRC-8/DVB-S2\0".as_ptr()};
/// Describes "CRC-8/GSM-A" 
#[no_mangle]
pub static CRC_8_GSM_A: Model_u8 = Model_u8 { width: 8, poly: 0x1d, init: 0x00, refin: false, refout: false, xorout: 0x00, check: 0x37, residue: 0x00, name: "CRC-8/GSM-A\0".as_ptr()};
/// Describes "CRC-8/GSM-B" 
#[no_mangle]
pub static CRC_8_GSM_B: Model_u8 = Model_u8 { width: 8, poly: 0x49, init: 0x00, refin: false, refout: false, xorout: 0xff, check: 0x94, residue: 0x53, name: "CRC-8/GSM-B\0".as_ptr()};
/// Describes "CRC-8/I-432-1" 
#[no_mangle]
pub static CRC_8_I_432_1: Model_u8 = Model_u8 { width: 8, poly: 0x07, init: 0x00, refin: false, refout: false, xorout: 0x55, check: 0xa1, residue: 0xac, name: "CRC-8/I-432-1\0".as_ptr()};
/// Describes "CRC-8/I-CODE" 
#[no_mangle]
pub static CRC_8_I_CODE: Model_u8 = Model_u8 { width: 8, poly: 0x1d, init: 0xfd, refin: false, refout: false, xorout: 0x00, check: 0x7e, residue: 0x00, name: "CRC-8/I-CODE\0".as_ptr()};
/// Describes "CRC-8/LTE" 
#[no_mangle]
pub static CRC_8_LTE: Model_u8 = Model_u8 { width: 8, poly: 0x9b, init: 0x00, refin: false, refout: false, xorout: 0x00, check: 0xea, residue: 0x00, name: "CRC-8/LTE\0".as_ptr()};
/// Describes "CRC-8/MAXIM-DOW" 
#[no_mangle]
pub static CRC_8_MAXIM_DOW: Model_u8 = Model_u8 { width: 8, poly: 0x31, init: 0x00, refin: true, refout: true, xorout: 0x00, check: 0xa1, residue: 0x00, name: "CRC-8/MAXIM-DOW\0".as_ptr()};
/// Describes "CRC-8/MIFARE-MAD" 
#[no_mangle]
pub static CRC_8_MIFARE_MAD: Model_u8 = Model_u8 { width: 8, poly: 0x1d, init: 0xc7, refin: false, refout: false, xorout: 0x00, check: 0x99, residue: 0x00, name: "CRC-8/MIFARE-MAD\0".as_ptr()};
/// Describes "CRC-8/NRSC-5" 
#[no_mangle]
pub static CRC_8_NRSC_5: Model_u8 = Model_u8 { width: 8, poly: 0x31, init: 0xff, refin: false, refout: false, xorout: 0x00, check: 0xf7, residue: 0x00, name: "CRC-8/NRSC-5\0".as_ptr()};
/// Describes "CRC-8/OPENSAFETY" 
#[no_mangle]
pub static CRC_8_OPENSAFETY: Model_u8 = Model_u8 { width: 8, poly: 0x2f, init: 0x00, refin: false, refout: false, xorout: 0x00, check: 0x3e, residue: 0x00, name: "CRC-8/OPENSAFETY\0".as_ptr()};
/// Describes "CRC-8/ROHC" 
#[no_mangle]
pub static CRC_8_ROHC: Model_u8 = Model_u8 { width: 8, poly: 0x07, init: 0xff, refin: true, refout: true, xorout: 0x00, check: 0xd0, residue: 0x00, name: "CRC-8/ROHC\0".as_ptr()};
/// Describes "CRC-8/SAE-J1850" 
#[no_mangle]
pub static CRC_8_SAE_J1850: Model_u8 = Model_u8 { width: 8, poly: 0x1d, init: 0xff, refin: false, refout: false, xorout: 0xff, check: 0x4b, residue: 0xc4, name: "CRC-8/SAE-J1850\0".as_ptr()};
/// Describes "CRC-8/SMBUS" 
#[no_mangle]
pub static CRC_8_SMBUS: Model_u8 = Model_u8 { width: 8, poly: 0x07, init: 0x00, refin: false, refout: false, xorout: 0x00, check: 0xf4, residue: 0x00, name: "CRC-8/SMBUS\0".as_ptr()};
/// Describes "CRC-8/TECH-3250" 
#[no_mangle]
pub static CRC_8_TECH_3250: Model_u8 = Model_u8 { width: 8, poly: 0x1d, init: 0xff, refin: true, refout: true, xorout: 0x00, check: 0x97, residue: 0x00, name: "CRC-8/TECH-3250\0".as_ptr()};
/// Describes "CRC-8/WCDMA" 
#[no_mangle]
pub static CRC_8_WCDMA: Model_u8 = Model_u8 { width: 8, poly: 0x9b, init: 0x00, refin: true, refout: true, xorout: 0x00, check: 0x25, residue: 0x00, name: "CRC-8/WCDMA\0".as_ptr()};
/// Describes "CRC-10/ATM" 
#[no_mangle]
pub static CRC_10_ATM: Model_u16 = Model_u16 { width: 10, poly: 0x233, init: 0x000, refin: false, refout: false, xorout: 0x000, check: 0x199, residue: 0x000, name: "CRC-10/ATM\0".as_ptr()};
/// Describes "CRC-10/CDMA2000" 
#[no_mangle]
pub static CRC_10_CDMA2000: Model_u16 = Model_u16 { width: 10, poly: 0x3d9, init: 0x3ff, refin: false, refout: false, xorout: 0x000, check: 0x233, residue: 0x000, name: "CRC-10/CDMA2000\0".as_ptr()};
/// Describes "CRC-10/GSM" 
#[no_mangle]
pub static CRC_10_GSM: Model_u16 = Model_u16 { width: 10, poly: 0x175, init: 0x000, refin: false, refout: false, xorout: 0x3ff, check: 0x12a, residue: 0x0c6, name: "CRC-10/GSM\0".as_ptr()};
/// Describes "CRC-11/FLEXRAY" 
#[no_mangle]
pub static CRC_11_FLEXRAY: Model_u16 = Model_u16 { width: 11, poly: 0x385, init: 0x01a, refin: false, refout: false, xorout: 0x000, check: 0x5a3, residue: 0x000, name: "CRC-11/FLEXRAY\0".as_ptr()};
/// Describes "CRC-11/UMTS" 
#[no_mangle]
pub static CRC_11_UMTS: Model_u16 = Model_u16 { width: 11, poly: 0x307, init: 0x000, refin: false, refout: false, xorout: 0x000, check: 0x061, residue: 0x000, name: "CRC-11/UMTS\0".as_ptr()};
/// Describes "CRC-12/CDMA2000" 
#[no_mangle]
pub static CRC_12_CDMA2000: Model_u16 = Model_u16 { width: 12, poly: 0xf13, init: 0xfff, refin: false, refout: false, xorout: 0x000, check: 0xd4d, residue: 0x000, name: "CRC-12/CDMA2000\0".as_ptr()};
/// Describes "CRC-12/DECT" 
#[no_mangle]
pub static CRC_12_DECT: Model_u16 = Model_u16 { width: 12, poly: 0x80f, init: 0x000, refin: false, refout: false, xorout: 0x000, check: 0xf5b, residue: 0x000, name: "CRC-12/DECT\0".as_ptr()};
/// Describes "CRC-12/GSM" 
#[no_mangle]
pub static CRC_12_GSM: Model_u16 = Model_u16 { width: 12, poly: 0xd31, init: 0x000, refin: false, refout: false, xorout: 0xfff, check: 0xb34, residue: 0x178, name: "CRC-12/GSM\0".as_ptr()};
/// Describes "CRC-12/UMTS" 
#[no_mangle]
pub static CRC_12_UMTS: Model_u16 = Model_u16 { width: 12, poly: 0x80f, init: 0x000, refin: false, refout: true, xorout: 0x000, check: 0xdaf, residue: 0x000, name: "CRC-12/UMTS\0".as_ptr()};
/// Describes "CRC-13/BBC" 
#[no_mangle]
pub static CRC_13_BBC: Model_u16 = Model_u16 { width: 13, poly: 0x1cf5, init: 0x0000, refin: false, refout: false, xorout: 0x0000, check: 0x04fa, residue: 0x0000, name: "CRC-13/BBC\0".as_ptr()};
/// Describes "CRC-14/DARC" 
#[no_mangle]
pub static CRC_14_DARC: Model_u16 = Model_u16 { width: 14, poly: 0x0805, init: 0x0000, refin: true, refout: true, xorout: 0x0000, check: 0x082d, residue: 0x0000, name: "CRC-14/DARC\0".as_ptr()};
/// Describes "CRC-14/GSM" 
#[no_mangle]
pub static CRC_14_GSM: Model_u16 = Model_u16 { width: 14, poly: 0x202d, init: 0x0000, refin: false, refout: false, xorout: 0x3fff, check: 0x30ae, residue: 0x031e, name: "CRC-14/GSM\0".as_ptr()};
/// Describes "CRC-15/CAN" 
#[no_mangle]
pub static CRC_15_CAN: Model_u16 = Model_u16 { width: 15, poly: 0x4599, init: 0x0000, refin: false, refout: false, xorout: 0x0000, check: 0x059e, residue: 0x0000, name: "CRC-15/CAN\0".as_ptr()};
/// Describes "CRC-15/MPT1327" 
#[no_mangle]
pub static CRC_15_MPT1327: Model_u16 = Model_u16 { width: 15, poly: 0x6815, init: 0x0000, refin: false, refout: false, xorout: 0x0001, check: 0x2566, residue: 0x6815, name: "CRC-15/MPT1327\0".as_ptr()};
/// Describes "CRC-16/ARC" 
#[no_mangle]
pub static CRC_16_ARC: Model_u16 = Model_u16 { width: 16, poly: 0x8005, init: 0x0000, refin: true, refout: true, xorout: 0x0000, check: 0xbb3d, residue: 0x0000, name: "CRC-16/ARC\0".as_ptr()};
/// Describes "CRC-16/CDMA2000" 
#[no_mangle]
pub static CRC_16_CDMA2000: Model_u16 = Model_u16 { width: 16, poly: 0xc867, init: 0xffff, refin: false, refout: false, xorout: 0x0000, check: 0x4c06, residue: 0x0000, name: "CRC-16/CDMA2000\0".as_ptr()};
/// Describes "CRC-16/CMS" 
#[no_mangle]
pub static CRC_16_CMS: Model_u16 = Model_u16 { width: 16, poly: 0x8005, init: 0xffff, refin: false, refout: false, xorout: 0x0000, check: 0xaee7, residue: 0x0000, name: "CRC-16/CMS\0".as_ptr()};
/// Describes "CRC-16/DDS-110" 
#[no_mangle]
pub static CRC_16_DDS_110: Model_u16 = Model_u16 { width: 16, poly: 0x8005, init: 0x800d, refin: false, refout: false, xorout: 0x0000, check: 0x9ecf, residue: 0x0000, name: "CRC-16/DDS-110\0".as_ptr()};
/// Describes "CRC-16/DECT-R" 
#[no_mangle]
pub static CRC_16_DECT_R: Model_u16 = Model_u16 { width: 16, poly: 0x0589, init: 0x0000, refin: false, refout: false, xorout: 0x0001, check: 0x007e, residue: 0x0589, name: "CRC-16/DECT-R\0".as_ptr()};
/// Describes "CRC-16/DECT-X" 
#[no_mangle]
pub static CRC_16_DECT_X: Model_u16 = Model_u16 { width: 16, poly: 0x0589, init: 0x0000, refin: false, refout: false, xorout: 0x0000, check: 0x007f, residue: 0x0000, name: "CRC-16/DECT-X\0".as_ptr()};
/// Describes "CRC-16/DNP" 
#[no_mangle]
pub static CRC_16_DNP: Model_u16 = Model_u16 { width: 16, poly: 0x3d65, init: 0x0000, refin: true, refout: true, xorout: 0xffff, check: 0xea82, residue: 0x66c5, name: "CRC-16/DNP\0".as_ptr()};
/// Describes "CRC-16/EN-13757" 
#[no_mangle]
pub static CRC_16_EN_13757: Model_u16 = Model_u16 { width: 16, poly: 0x3d65, init: 0x0000, refin: false, refout: false, xorout: 0xffff, check: 0xc2b7, residue: 0xa366, name: "CRC-16/EN-13757\0".as_ptr()};
/// Describes "CRC-16/GENIBUS" 
#[no_mangle]
pub static CRC_16_GENIBUS: Model_u16 = Model_u16 { width: 16, poly: 0x1021, init: 0xffff, refin: false, refout: false, xorout: 0xffff, check: 0xd64e, residue: 0x1d0f, name: "CRC-16/GENIBUS\0".as_ptr()};
/// Describes "CRC-16/GSM" 
#[no_mangle]
pub static CRC_16_GSM: Model_u16 = Model_u16 { width: 16, poly: 0x1021, init: 0x0000, refin: false, refout: false, xorout: 0xffff, check: 0xce3c, residue: 0x1d0f, name: "CRC-16/GSM\0".as_ptr()};
/// Describes "CRC-16/IBM-3740" 
#[no_mangle]
pub static CRC_16_IBM_3740: Model_u16 = Model_u16 { width: 16, poly: 0x1021, init: 0xffff, refin: false, refout: false, xorout: 0x0000, check: 0x29b1, residue: 0x0000, name: "CRC-16/IBM-3740\0".as_ptr()};
/// Describes "CRC-16/IBM-SDLC" 
#[no_mangle]
pub static CRC_16_IBM_SDLC: Model_u16 = Model_u16 { width: 16, poly: 0x1021, init: 0xffff, refin: true, refout: true, xorout: 0xffff, check: 0x906e, residue: 0xf0b8, name: "CRC-16/IBM-SDLC\0".as_ptr()};
/// Describes "CRC-16/ISO-IEC-14443-3-A" 
#[no_mangle]
pub static CRC_16_ISO_IEC_14443_3_A: Model_u16 = Model_u16 { width: 16, poly: 0x1021, init: 0xc6c6, refin: true, refout: true, xorout: 0x0000, check: 0xbf05, residue: 0x0000, name: "CRC-16/ISO-IEC-14443-3-A\0".as_ptr()};
/// Describes "CRC-16/KERMIT" 
#[no_mangle]
pub static CRC_16_KERMIT: Model_u16 = Model_u16 { width: 16, poly: 0x1021, init: 0x0000, refin: true, refout: true, xorout: 0x0000, check: 0x2189, residue: 0x0000, name: "CRC-16/KERMIT\0".as_ptr()};
/// Describes "CRC-16/LJ1200" 
#[no_mangle]
pub static CRC_16_LJ1200: Model_u16 = Model_u16 { width: 16, poly: 0x6f63, init: 0x0000, refin: false, refout: false, xorout: 0x0000, check: 0xbdf4, residue: 0x0000, name: "CRC-16/LJ1200\0".as_ptr()};
/// Describes "CRC-16/MAXIM-DOW" 
#[no_mangle]
pub static CRC_16_MAXIM_DOW: Model_u16 = Model_u16 { width: 16, poly: 0x8005, init: 0x0000, refin: true, refout: true, xorout: 0xffff, check: 0x44c2, residue: 0xb001, name: "CRC-16/MAXIM-DOW\0".as_ptr()};
/// Describes "CRC-16/MCRF4XX" 
#[no_mangle]
pub static CRC_16_MCRF4XX: Model_u16 = Model_u16 { width: 16, poly: 0x1021, init: 0xffff, refin: true, refout: true, xorout: 0x0000, check: 0x6f91, residue: 0x0000, name: "CRC-16/MCRF4XX\0".as_ptr()};
/// Describes "CRC-16/MODBUS" 
#[no_mangle]
pub static CRC_16_MODBUS: Model_u16 = Model_u16 { width: 16, poly: 0x8005, init: 0xffff, refin: true, refout: true, xorout: 0x0000, check: 0x4b37, residue: 0x0000, name: "CRC-16/MODBUS\0".as_ptr()};
/// Describes "CRC-16/NRSC-5" 
#[no_mangle]
pub static CRC_16_NRSC_5: Model_u16 = Model_u16 { width: 16, poly: 0x080b, init: 0xffff, refin: true, refout: true, xorout: 0x0000, check: 0xa066, residue: 0x0000, name: "CRC-16/NRSC-5\0".as_ptr()};
/// Describes "CRC-16/OPENSAFETY-A" 
#[no_mangle]
pub static CRC_16_OPENSAFETY_A: Model_u16 = Model_u16 { width: 16, poly: 0x5935, init: 0x0000, refin: false, refout: false, xorout: 0x0000, check: 0x5d38, residue: 0x0000, name: "CRC-16/OPENSAFETY-A\0".as_ptr()};
/// Describes "CRC-16/OPENSAFETY-B" 
#[no_mangle]
pub static CRC_16_OPENSAFETY_B: Model_u16 = Model_u16 { width: 16, poly: 0x755b, init: 0x0000, refin: false, refout: false, xorout: 0x0000, check: 0x20fe, residue: 0x0000, name: "CRC-16/OPENSAFETY-B\0".as_ptr()};
/// Describes "CRC-16/PROFIBUS" 
#[no_mangle]
pub static CRC_16_PROFIBUS: Model_u16 = Model_u16 { width: 16, poly: 0x1dcf, init: 0xffff, refin: false, refout: false, xorout: 0xffff, check: 0xa819, residue: 0xe394, name: "CRC-16/PROFIBUS\0".as_ptr()};
/// Describes "CRC-16/RIELLO" 
#[no_mangle]
pub static CRC_16_RIELLO: Model_u16 = Model_u16 { width: 16, poly: 0x1021, init: 0xb2aa, refin: true, refout: true, xorout: 0x0000, check: 0x63d0, residue: 0x0000, name: "CRC-16/RIELLO\0".as_ptr()};
/// Describes "CRC-16/SPI-FUJITSU" 
#[no_mangle]
pub static CRC_16_SPI_FUJITSU: Model_u16 = Model_u16 { width: 16, poly: 0x1021, init: 0x1d0f, refin: false, refout: false, xorout: 0x0000, check: 0xe5cc, residue: 0x0000, name: "CRC-16/SPI-FUJITSU\0".as_ptr()};
/// Describes "CRC-16/T10-DIF" 
#[no_mangle]
pub static CRC_16_T10_DIF: Model_u16 = Model_u16 { width: 16, poly: 0x8bb7, init: 0x0000, refin: false, refout: false, xorout: 0x0000, check: 0xd0db, residue: 0x0000, name: "CRC-16/T10-DIF\0".as_ptr()};
/// Describes "CRC-16/TELEDISK" 
#[no_mangle]
pub static CRC_16_TELEDISK: Model_u16 = Model_u16 { width: 16, poly: 0xa097, init: 0x0000, refin: false, refout: false, xorout: 0x0000, check: 0x0fb3, residue: 0x0000, name: "CRC-16/TELEDISK\0".as_ptr()};
/// Describes "CRC-16/TMS37157" 
#[no_mangle]
pub static CRC_16_TMS37157: Model_u16 = Model_u16 { width: 16, poly: 0x1021, init: 0x89ec, refin: true, refout: true, xorout: 0x0000, check: 0x26b1, residue: 0x0000, name: "CRC-16/TMS37157\0".as_ptr()};
/// Describes "CRC-16/UMTS" 
#[no_mangle]
pub static CRC_16_UMTS: Model_u16 = Model_u16 { width: 16, poly: 0x8005, init: 0x0000, refin: false, refout: false, xorout: 0x0000, check: 0xfee8, residue: 0x0000, name: "CRC-16/UMTS\0".as_ptr()};
/// Describes "CRC-16/USB" 
#[no_mangle]
pub static CRC_16_USB: Model_u16 = Model_u16 { width: 16, poly: 0x8005, init: 0xffff, refin: true, refout: true, xorout: 0xffff, check: 0xb4c8, residue: 0xb001, name: "CRC-16/USB\0".as_ptr()};
/// Describes "CRC-16/XMODEM" 
#[no_mangle]
pub static CRC_16_XMODEM: Model_u16 = Model_u16 { width: 16, poly: 0x1021, init: 0x0000, refin: false, refout: false, xorout: 0x0000, check: 0x31c3, residue: 0x0000, name: "CRC-16/XMODEM\0".as_ptr()};
/// Describes "CRC-17/CAN-FD" 
#[no_mangle]
pub static CRC_17_CAN_FD: Model_u32 = Model_u32 { width: 17, poly: 0x1685b, init: 0x00000, refin: false, refout: false, xorout: 0x00000, check: 0x04f03, residue: 0x00000, name: "CRC-17/CAN-FD\0".as_ptr()};
/// Describes "CRC-21/CAN-FD" 
#[no_mangle]
pub static CRC_21_CAN_FD: Model_u32 = Model_u32 { width: 21, poly: 0x102899, init: 0x000000, refin: false, refout: false, xorout: 0x000000, check: 0x0ed841, residue: 0x000000, name: "CRC-21/CAN-FD\0".as_ptr()};
/// Describes "CRC-24/BLE" 
#[no_mangle]
pub static CRC_24_BLE: Model_u32 = Model_u32 { width: 24, poly: 0x00065b, init: 0x555555, refin: true, refout: true, xorout: 0x000000, check: 0xc25a56, residue: 0x000000, name: "CRC-24/BLE\0".as_ptr()};
/// Describes "CRC-24/FLEXRAY-A" 
#[no_mangle]
pub static CRC_24_FLEXRAY_A: Model_u32 = Model_u32 { width: 24, poly: 0x5d6dcb, init: 0xfedcba, refin: false, refout: false, xorout: 0x000000, check: 0x7979bd, residue: 0x000000, name: "CRC-24/FLEXRAY-A\0".as_ptr()};
/// Describes "CRC-24/FLEXRAY-B" 
#[no_mangle]
pub static CRC_24_FLEXRAY_B: Model_u32 = Model_u32 { width: 24, poly: 0x5d6dcb, init: 0xabcdef, refin: false, refout: false, xorout: 0x000000, check: 0x1f23b8, residue: 0x000000, name: "CRC-24/FLEXRAY-B\0".as_ptr()};
/// Describes "CRC-24/INTERLAKEN" 
#[no_mangle]
pub static CRC_24_INTERLAKEN: Model_u32 = Model_u32 { width: 24, poly: 0x328b63, init: 0xffffff, refin: false, refout: false, xorout: 0xffffff, check: 0xb4f3e6, residue: 0x144e63, name: "CRC-24/INTERLAKEN\0".as_ptr()};
/// Describes "CRC-24/LTE-A" 
#[no_mangle]
pub static CRC_24_LTE_A: Model_u32 = Model_u32 { width: 24, poly: 0x864cfb, init: 0x000000, refin: false, refout: false, xorout: 0x000000, check: 0xcde703, residue: 0x000000, name: "CRC-24/LTE-A\0".as_ptr()};
/// Describes "CRC-24/LTE-B" 
#[no_mangle]
pub static CRC_24_LTE_B: Model_u32 = Model_u32 { width: 24, poly: 0x800063, init: 0x000000, refin: false, refout: false, xorout: 0x000000, check: 0x23ef52, residue: 0x000000, name: "CRC-24/LTE-B\0".as_ptr()};
/// Describes "CRC-24/OPENPGP" 
#[no_mangle]
pub static CRC_24_OPENPGP: Model_u32 = Model_u32 { width: 24, poly: 0x864cfb, init: 0xb704ce, refin: false, refout: false, xorout: 0x000000, check: 0x21cf02, residue: 0x000000, name: "CRC-24/OPENPGP\0".as_ptr()};
/// Describes "CRC-24/OS-9" 
#[no_mangle]
pub static CRC_24_OS_9: Model_u32 = Model_u32 { width: 24, poly: 0x800063, init: 0xffffff, refin: false, refout: false, xorout: 0xffffff, check: 0x200fa5, residue: 0x800fe3, name: "CRC-24/OS-9\0".as_ptr()};
/// Describes "CRC-30/CDMA" 
#[no_mangle]
pub static CRC_30_CDMA: Model_u32 = Model_u32 { width: 30, poly: 0x2030b9c7, init: 0x3fffffff, refin: false, refout: false, xorout: 0x3fffffff, check: 0x04c34abf, residue: 0x34efa55a, name: "CRC-30/CDMA\0".as_ptr()};
/// Describes "CRC-31/PHILIPS" 
#[no_mangle]
pub static CRC_31_PHILIPS: Model_u32 = Model_u32 { width: 31, poly: 0x04c11db7, init: 0x7fffffff, refin: false, refout: false, xorout: 0x7fffffff, check: 0x0ce9e46c, residue: 0x4eaf26f1, name: "CRC-31/PHILIPS\0".as_ptr()};
/// Describes "CRC-32/AIXM" 
#[no_mangle]
pub static CRC_32_AIXM: Model_u32 = Model_u32 { width: 32, poly: 0x814141ab, init: 0x00000000, refin: false, refout: false, xorout: 0x00000000, check: 0x3010bf7f, residue: 0x00000000, name: "CRC-32/AIXM\0".as_ptr()};
/// Describes "CRC-32/AUTOSAR" 
#[no_mangle]
pub static CRC_32_AUTOSAR: Model_u32 = Model_u32 { width: 32, poly: 0xf4acfb13, init: 0xffffffff, refin: true, refout: true, xorout: 0xffffffff, check: 0x1697d06a, residue: 0x904cddbf, name: "CRC-32/AUTOSAR\0".as_ptr()};
/// Describes "CRC-32/BASE91-D" 
#[no_mangle]
pub static CRC_32_BASE91_D: Model_u32 = Model_u32 { width: 32, poly: 0xa833982b, init: 0xffffffff, refin: true, refout: true, xorout: 0xffffffff, check: 0x87315576, residue: 0x45270551, name: "CRC-32/BASE91-D\0".as_ptr()};
/// Describes "CRC-32/BZIP2" 
#[no_mangle]
pub static CRC_32_BZIP2: Model_u32 = Model_u32 { width: 32, poly: 0x04c11db7, init: 0xffffffff, refin: false, refout: false, xorout: 0xffffffff, check: 0xfc891918, residue: 0xc704dd7b, name: "CRC-32/BZIP2\0".as_ptr()};
/// Describes "CRC-32/CD-ROM-EDC" 
#[no_mangle]
pub static CRC_32_CD_ROM_EDC: Model_u32 = Model_u32 { width: 32, poly: 0x8001801b, init: 0x00000000, refin: true, refout: true, xorout: 0x00000000, check: 0x6ec2edc4, residue: 0x00000000, name: "CRC-32/CD-ROM-EDC\0".as_ptr()};
/// Describes "CRC-32/CKSUM" 
#[no_mangle]
pub static CRC_32_CKSUM: Model_u32 = Model_u32 { width: 32, poly: 0x04c11db7, init: 0x00000000, refin: false, refout: false, xorout: 0xffffffff, check: 0x765e7680, residue: 0xc704dd7b, name: "CRC-32/CKSUM\0".as_ptr()};
/// Describes "CRC-32/ISCSI" 
#[no_mangle]
pub static CRC_32_ISCSI: Model_u32 = Model_u32 { width: 32, poly: 0x1edc6f41, init: 0xffffffff, refin: true, refout: true, xorout: 0xffffffff, check: 0xe3069283, residue: 0xb798b438, name: "CRC-32/ISCSI\0".as_ptr()};
/// Describes "CRC-32/ISO-HDLC" 
#[no_mangle]
pub static CRC_32_ISO_HDLC: Model_u32 = Model_u32 { width: 32, poly: 0x04c11db7, init: 0xffffffff, refin: true, refout: true, xorout: 0xffffffff, check: 0xcbf43926, residue: 0xdebb20e3, name: "CRC-32/ISO-HDLC\0".as_ptr()};
/// Describes "CRC-32/JAMCRC" 
#[no_mangle]
pub static CRC_32_JAMCRC: Model_u32 = Model_u32 { width: 32, poly: 0x04c11db7, init: 0xffffffff, refin: true, refout: true, xorout: 0x00000000, check: 0x340bc6d9, residue: 0x00000000, name: "CRC-32/JAMCRC\0".as_ptr()};
/// Describes "CRC-32/MPEG-2" 
#[no_mangle]
pub static CRC_32_MPEG_2: Model_u32 = Model_u32 { width: 32, poly: 0x04c11db7, init: 0xffffffff, refin: false, refout: false, xorout: 0x00000000, check: 0x0376e6e7, residue: 0x00000000, name: "CRC-32/MPEG-2\0".as_ptr()};
/// Describes "CRC-32/XFER" 
#[no_mangle]
pub static CRC_32_XFER: Model_u32 = Model_u32 { width: 32, poly: 0x000000af, init: 0x00000000, refin: false, refout: false, xorout: 0x00000000, check: 0xbd0be338, residue: 0x00000000, name: "CRC-32/XFER\0".as_ptr()};
/// Describes "CRC-40/GSM" 
#[no_mangle]
pub static CRC_40_GSM: Model_u64 = Model_u64 { width: 40, poly: 0x0004820009, init: 0x0000000000, refin: false, refout: false, xorout: 0xffffffffff, check: 0xd4164fc646, residue: 0xc4ff8071ff, name: "CRC-40/GSM\0".as_ptr()};
/// Describes "CRC-64/ECMA-182" 
#[no_mangle]
pub static CRC_64_ECMA_182: Model_u64 = Model_u64 { width: 64, poly: 0x42f0e1eba9ea3693, init: 0x0000000000000000, refin: false, refout: false, xorout: 0x0000000000000000, check: 0x6c40df5f0b497347, residue: 0x0000000000000000, name: "CRC-64/ECMA-182\0".as_ptr()};
/// Describes "CRC-64/GO-ISO" 
#[no_mangle]
pub static CRC_64_GO_ISO: Model_u64 = Model_u64 { width: 64, poly: 0x000000000000001b, init: 0xffffffffffffffff, refin: true, refout: true, xorout: 0xffffffffffffffff, check: 0xb90956c775a41001, residue: 0x5300000000000000, name: "CRC-64/GO-ISO\0".as_ptr()};
/// Describes "CRC-64/WE" 
#[no_mangle]
pub static CRC_64_WE: Model_u64 = Model_u64 { width: 64, poly: 0x42f0e1eba9ea3693, init: 0xffffffffffffffff, refin: false, refout: false, xorout: 0xffffffffffffffff, check: 0x62ec59e3f1a4f00a, residue: 0xfcacbebd5931a992, name: "CRC-64/WE\0".as_ptr()};
/// Describes "CRC-64/XZ" 
#[no_mangle]
pub static CRC_64_XZ: Model_u64 = Model_u64 { width: 64, poly: 0x42f0e1eba9ea3693, init: 0xffffffffffffffff, refin: true, refout: true, xorout: 0xffffffffffffffff, check: 0x995dc9bbdf1939fa, residue: 0x49958c9abd7d353f, name: "CRC-64/XZ\0".as_ptr()};

/// A list of models that operate on the `u8` primitive.
#[no_mangle]
pub static ALL_CRC_8: [Model_u8;34] = [
	CRC_3_GSM,
	CRC_3_ROHC,
	CRC_4_G_704,
	CRC_4_INTERLAKEN,
	CRC_5_EPC_C1G2,
	CRC_5_G_704,
	CRC_5_USB,
	CRC_6_CDMA2000_A,
	CRC_6_CDMA2000_B,
	CRC_6_DARC,
	CRC_6_G_704,
	CRC_6_GSM,
	CRC_7_MMC,
	CRC_7_ROHC,
	CRC_7_UMTS,
	CRC_8_AUTOSAR,
	CRC_8_BLUETOOTH,
	CRC_8_CDMA2000,
	CRC_8_DARC,
	CRC_8_DVB_S2,
	CRC_8_GSM_A,
	CRC_8_GSM_B,
	CRC_8_I_432_1,
	CRC_8_I_CODE,
	CRC_8_LTE,
	CRC_8_MAXIM_DOW,
	CRC_8_MIFARE_MAD,
	CRC_8_NRSC_5,
	CRC_8_OPENSAFETY,
	CRC_8_ROHC,
	CRC_8_SAE_J1850,
	CRC_8_SMBUS,
	CRC_8_TECH_3250,
	CRC_8_WCDMA,
];
/// A list of models that operate on the `u16` primitive.
#[no_mangle]
pub static ALL_CRC_16: [Model_u16;44] = [
	CRC_10_ATM,
	CRC_10_CDMA2000,
	CRC_10_GSM,
	CRC_11_FLEXRAY,
	CRC_11_UMTS,
	CRC_12_CDMA2000,
	CRC_12_DECT,
	CRC_12_GSM,
	CRC_12_UMTS,
	CRC_13_BBC,
	CRC_14_DARC,
	CRC_14_GSM,
	CRC_15_CAN,
	CRC_15_MPT1327,
	CRC_16_ARC,
	CRC_16_CDMA2000,
	CRC_16_CMS,
	CRC_16_DDS_110,
	CRC_16_DECT_R,
	CRC_16_DECT_X,
	CRC_16_DNP,
	CRC_16_EN_13757,
	CRC_16_GENIBUS,
	CRC_16_GSM,
	CRC_16_IBM_3740,
	CRC_16_IBM_SDLC,
	CRC_16_ISO_IEC_14443_3_A,
	CRC_16_KERMIT,
	CRC_16_LJ1200,
	CRC_16_MAXIM_DOW,
	CRC_16_MCRF4XX,
	CRC_16_MODBUS,
	CRC_16_NRSC_5,
	CRC_16_OPENSAFETY_A,
	CRC_16_OPENSAFETY_B,
	CRC_16_PROFIBUS,
	CRC_16_RIELLO,
	CRC_16_SPI_FUJITSU,
	CRC_16_T10_DIF,
	CRC_16_TELEDISK,
	CRC_16_TMS37157,
	CRC_16_UMTS,
	CRC_16_USB,
	CRC_16_XMODEM,
];
/// A list of models that operate on the `u32` primitive.
#[no_mangle]
pub static ALL_CRC_32: [Model_u32;23] = [
	CRC_17_CAN_FD,
	CRC_21_CAN_FD,
	CRC_24_BLE,
	CRC_24_FLEXRAY_A,
	CRC_24_FLEXRAY_B,
	CRC_24_INTERLAKEN,
	CRC_24_LTE_A,
	CRC_24_LTE_B,
	CRC_24_OPENPGP,
	CRC_24_OS_9,
	CRC_30_CDMA,
	CRC_31_PHILIPS,
	CRC_32_AIXM,
	CRC_32_AUTOSAR,
	CRC_32_BASE91_D,
	CRC_32_BZIP2,
	CRC_32_CD_ROM_EDC,
	CRC_32_CKSUM,
	CRC_32_ISCSI,
	CRC_32_ISO_HDLC,
	CRC_32_JAMCRC,
	CRC_32_MPEG_2,
	CRC_32_XFER,
];
/// A list of models that operate on the `u64` primitive.
#[no_mangle]
pub static ALL_CRC_64: [Model_u64;5] = [
	CRC_40_GSM,
	CRC_64_ECMA_182,
	CRC_64_GO_ISO,
	CRC_64_WE,
	CRC_64_XZ,
];