Enum crc_any::CRC[][src]

pub enum CRC {
    CRCu8(CRCu8),
    CRCu16(CRCu16),
    CRCu32(CRCu32),
    CRCu64(CRCu64),
}
Expand description

This struct can help you compute a CRC value.

Variants

CRCu8(CRCu8)

Tuple Fields of CRCu8

0: CRCu8
CRCu16(CRCu16)

Tuple Fields of CRCu16

0: CRCu16
CRCu32(CRCu32)

Tuple Fields of CRCu32

0: CRCu32
CRCu64(CRCu64)

Tuple Fields of CRCu64

0: CRCu64

Implementations

Create a CRC instance by providing the length of bits, expression, reflection, an initial value and a final xor value.

Create a CRC instance by providing the length of bits, expression, reflection, an initial value and a final xor value.

Create a CRC instance by providing the length of bits, expression, reflection, an initial value and a final xor value.

Create a CRC instance by providing the length of bits, expression, reflection, an initial value and a final xor value.

Create a CRC instance by providing the length of bits, expression, reflection, an initial value and a final xor value.

Digest some data.

Reset the sum.

Get the current CRC value (it always returns a u64 value). You can continue calling digest method even after getting a CRC value.

Get the current CRC value (it always returns a vec instance with a length corresponding to the CRC bits). You can continue calling digest method even after getting a CRC value.

Get the current CRC value (it always returns a vec instance with a length corresponding to the CRC bits). You can continue calling digest method even after getting a CRC value.

CheckPolyInitRefXorOut
0x40x30x0false0x7
let mut crc = CRC::crc3gsm();
crc.digest(b"123456789");
assert_eq!("0x4", &crc.to_string());
CheckPolyInitRefXorOut
0x70x3 (rev: 0xC)0x0true0x0
let mut crc = CRC::crc4itu();
crc.digest(b"123456789");
assert_eq!("0x7", &crc.to_string());
CheckPolyInitRefXorOut
0xB0x30xFfalse0xF
let mut crc = CRC::crc4interlaken();
crc.digest(b"123456789");
assert_eq!("0xB", &crc.to_string());
CheckPolyInitRefXorOut
0x000x090x09false0x00
let mut crc = CRC::crc5epc();
crc.digest(b"123456789");
assert_eq!("0x00", &crc.to_string());
CheckPolyInitRefXorOut
0x070x15 (rev: 0x15)0x00true0x00
let mut crc = CRC::crc5itu();
crc.digest(b"123456789");
assert_eq!("0x07", &crc.to_string());
CheckPolyInitRefXorOut
0x190x05 (rev: 0x14)0x1Ftrue0x1F
let mut crc = CRC::crc5usb();
crc.digest(b"123456789");
assert_eq!("0x19", &crc.to_string());
CheckPolyInitRefXorOut
0x0D0x270x3Ffalse0x00
let mut crc = CRC::crc6cdma2000_a();
crc.digest(b"123456789");
assert_eq!("0x0D", &crc.to_string());
CheckPolyInitRefXorOut
0x3B0x070x3Ffalse0x00
let mut crc = CRC::crc6cdma2000_b();
crc.digest(b"123456789");
assert_eq!("0x3B", &crc.to_string());
CheckPolyInitRefXorOut
0x260x19 (rev: 0x26)0x00true0x00
let mut crc = CRC::crc6darc();
crc.digest(b"123456789");
assert_eq!("0x26", &crc.to_string());
CheckPolyInitRefXorOut
0x130x2F0x00false0x3F
let mut crc = CRC::crc6gsm();
crc.digest(b"123456789");
assert_eq!("0x13", &crc.to_string());
CheckPolyInitRefXorOut
0x060x03 (rev: 0x30)0x00true0x00
let mut crc = CRC::crc6itu();
crc.digest(b"123456789");
assert_eq!("0x06", &crc.to_string());
CheckPolyInitRefXorOut
0x750x090x00false0x00
let mut crc = CRC::crc7();
crc.digest(b"123456789");
assert_eq!("0x75", &crc.to_string());
CheckPolyInitRefXorOut
0x610x450x00false0x00
let mut crc = CRC::crc7umts();
crc.digest(b"123456789");
assert_eq!("0x61", &crc.to_string());
CheckPolyInitRefXorOut
0xF40x070x00false0x00
let mut crc = CRC::crc8();
crc.digest(b"123456789");
assert_eq!("0xF4", &crc.to_string());
CheckPolyInitRefXorOut
0xDA0x9B0xFFfalse0x00
let mut crc = CRC::crc8cdma2000();
crc.digest(b"123456789");
assert_eq!("0xDA", &crc.to_string());
CheckPolyInitRefXorOut
0xDA0x39 (rev: 0x9C)0x00true0x00
let mut crc = CRC::crc8darc();
crc.digest(b"123456789");
assert_eq!("0x15", &crc.to_string());
CheckPolyInitRefXorOut
0xBC0xD50x00false0x00
let mut crc = CRC::crc8dvb_s2();
crc.digest(b"123456789");
assert_eq!("0xBC", &crc.to_string());
CheckPolyInitRefXorOut
0x970x1D (rev: 0xB8)0xFFtrue0x00
let mut crc = CRC::crc8ebu();
crc.digest(b"123456789");
assert_eq!("0x97", &crc.to_string());
CheckPolyInitRefXorOut
0x7E0x1D0xFDfalse0x00
let mut crc = CRC::crc8icode();
crc.digest(b"123456789");
assert_eq!("0x7E", &crc.to_string());
CheckPolyInitRefXorOut
0xA10x070x00false0x55
let mut crc = CRC::crc8itu();
crc.digest(b"123456789");
assert_eq!("0xA1", &crc.to_string());
CheckPolyInitRefXorOut
0xA10x31 (rev: 0x8C)0x00true0x00
let mut crc = CRC::crc8maxim();
crc.digest(b"123456789");
assert_eq!("0xA1", &crc.to_string());
CheckPolyInitRefXorOut
0xD00x07 (rev: 0xE0)0xFFtrue0x00
let mut crc = CRC::crc8rohc();
crc.digest(b"123456789");
assert_eq!("0xD0", &crc.to_string());
CheckPolyInitRefXorOut
0x250x9B (rev: 0xD9)0x00true0x00
let mut crc = CRC::crc8wcdma();
crc.digest(b"123456789");
assert_eq!("0x25", &crc.to_string());
CheckPolyInitRefXorOut
0x1990x2330x000false0x000
let mut crc = CRC::crc10();
crc.digest(b"123456789");
assert_eq!("0x199", &crc.to_string());
CheckPolyInitRefXorOut
0x2330x3D90x3FFfalse0x000
let mut crc = CRC::crc10cdma2000();
crc.digest(b"123456789");
assert_eq!("0x233", &crc.to_string());
CheckPolyInitRefXorOut
0x12A0x1750x000false0x3FF
let mut crc = CRC::crc10gsm();
crc.digest(b"123456789");
assert_eq!("0x12A", &crc.to_string());
CheckPolyInitRefXorOut
0x5A30x3850x01afalse0x000
let mut crc = CRC::crc11();
crc.digest(b"123456789");
assert_eq!("0x5A3", &crc.to_string());
CheckPolyInitRefXorOut
0xF5B0x080F0x0000false0x0000
let mut crc = CRC::crc12();
crc.digest(b"123456789");
assert_eq!("0xF5B", &crc.to_string());
CheckPolyInitRefXorOut
0xD4D0x0F130x0FFFfalse0x0000
let mut crc = CRC::crc12cdma2000();
crc.digest(b"123456789");
assert_eq!("0xD4D", &crc.to_string());
CheckPolyInitRefXorOut
0xB340x0D310x0000false0x0FFF
let mut crc = CRC::crc12gsm();
crc.digest(b"123456789");
assert_eq!("0xB34", &crc.to_string());
CheckPolyInitRefXorOut
0x04FA0x1CF50x0000false0x0000
let mut crc = CRC::crc13bbc();
crc.digest(b"123456789");
assert_eq!("0x04FA", &crc.to_string());
CheckPolyInitRefXorOut
0x082D0x0805 (rev: 0x2804)0x0000true0x0000
let mut crc = CRC::crc14darc();
crc.digest(b"123456789");
assert_eq!("0x082D", &crc.to_string());
CheckPolyInitRefXorOut
0x30AE0x202D0x0000false0x3FFF
let mut crc = CRC::crc14gsm();
crc.digest(b"123456789");
assert_eq!("0x30AE", &crc.to_string());
CheckPolyInitRefXorOut
0x059E0x45990x0000false0x0000
let mut crc = CRC::crc15can();
crc.digest(b"123456789");
assert_eq!("0x059E", &crc.to_string());
CheckPolyInitRefXorOut
0x25660x68150x0000false0x0001
let mut crc = CRC::crc15mpt1327();
crc.digest(b"123456789");
assert_eq!("0x2566", &crc.to_string());
CheckPolyInitRefXorOut
0xBB3D0x8005 (rev: 0xA001)0x0000true0x0000
let mut crc = CRC::crc16();
crc.digest(b"123456789");
assert_eq!("0xBB3D", &crc.to_string());
CheckPolyInitRefXorOut
0x29B10x10210xFFFFfalse0x0000
let mut crc = CRC::crc16ccitt_false();
crc.digest(b"123456789");
assert_eq!("0x29B1", &crc.to_string());
CheckPolyInitRefXorOut
0xE5CC0x10210x1D0Ffalse0x0000
let mut crc = CRC::crc16aug_ccitt();
crc.digest(b"123456789");
assert_eq!("0xE5CC", &crc.to_string());
CheckPolyInitRefXorOut
0xFEE80x80050x0000false0x0000
let mut crc = CRC::crc16buypass();
crc.digest(b"123456789");
assert_eq!("0xFEE8", &crc.to_string());
CheckPolyInitRefXorOut
0x4C060xC8670xFFFFfalse0x0000
let mut crc = CRC::crc16cdma2000();
crc.digest(b"123456789");
assert_eq!("0x4C06", &crc.to_string());
CheckPolyInitRefXorOut
0x9ECF0x80050x800Dfalse0x0000
let mut crc = CRC::crc16dds_110();
crc.digest(b"123456789");
assert_eq!("0x9ECF", &crc.to_string());
CheckPolyInitRefXorOut
0x007E0x05890x0000false0x0001
let mut crc = CRC::crc16dect_r();
crc.digest(b"123456789");
assert_eq!("0x007E", &crc.to_string());
CheckPolyInitRefXorOut
0x007F0x05890x0000false0x0000
let mut crc = CRC::crc16dect_r();
crc.digest(b"123456789");
assert_eq!("0x007E", &crc.to_string());
CheckPolyInitRefXorOut
0xEA820x3D65 (rev: 0xA6BC)0x0000true0xFFFF
let mut crc = CRC::crc16dnp();
crc.digest(b"123456789");
assert_eq!("0xEA82", &crc.to_string());
CheckPolyInitRefXorOut
0xC2B70x3D650x0000false0xFFFF
let mut crc = CRC::crc16en_13757();
crc.digest(b"123456789");
assert_eq!("0xC2B7", &crc.to_string());
CheckPolyInitRefXorOut
0xD64E0x10210xFFFFfalse0xFFFF
let mut crc = CRC::crc16genibus();
crc.digest(b"123456789");
assert_eq!("0xD64E", &crc.to_string());
CheckPolyInitRefXorOut
0x44C20x8005 (rev: 0xA001)0xFFFFtrue0xFFFF
let mut crc = CRC::crc16maxim();
crc.digest(b"123456789");
assert_eq!("0x44C2", &crc.to_string());
CheckPolyInitRefXorOut
0x6F910x1021 (rev: 0x8408)0xFFFFtrue0x0000
let mut crc = CRC::crc16mcrf4cc();
crc.digest(b"123456789");
assert_eq!("0x6F91", &crc.to_string());
CheckPolyInitRefXorOut
0x63D00x1021 (rev: 0x8408)0xB2AAtrue0x0000
let mut crc = CRC::crc16riello();
crc.digest(b"123456789");
assert_eq!("0x63D0", &crc.to_string());
CheckPolyInitRefXorOut
0xD0DB0x8BB70x0000false0x0000
let mut crc = CRC::crc16t10_dif();
crc.digest(b"123456789");
assert_eq!("0xD0DB", &crc.to_string());
CheckPolyInitRefXorOut
0x0FB30xA0970x0000false0x0000
let mut crc = CRC::crc16teledisk();
crc.digest(b"123456789");
assert_eq!("0x0FB3", &crc.to_string());
CheckPolyInitRefXorOut
0x26B10x1021 (rev: 0x8408)0x89ECtrue0x0000
let mut crc = CRC::crc16tms13157();
crc.digest(b"123456789");
assert_eq!("0x26B1", &crc.to_string());
CheckPolyInitRefXorOut
0xB4C80x8005 (rev: 0xA001)0xFFFFtrue0xFFFF
let mut crc = CRC::crc16usb();
crc.digest(b"123456789");
assert_eq!("0xB4C8", &crc.to_string());
CheckPolyInitRefXorOut
0xBF050x1021 (rev: 0x8408)0xC6C6true0x0000
let mut crc = CRC::crc_a();
crc.digest(b"123456789");
assert_eq!("0xBF05", &crc.to_string());
CheckPolyInitRefXorOut
0x21890x1021 (rev: 0x8408)0x0000true0x0000
let mut crc = CRC::crc16kermit();
crc.digest(b"123456789");
assert_eq!("0x2189", &crc.to_string());
CheckPolyInitRefXorOut
0x4B370x8005 (rev: 0xA001)0xFFFFtrue0x0000
let mut crc = CRC::crc16modbus();
crc.digest(b"123456789");
assert_eq!("0x4B37", &crc.to_string());
CheckPolyInitRefXorOut
0x906E0x8005 (rev: 0xA001)0xFFFFtrue0xFFFF
let mut crc = CRC::crc16_x25();
crc.digest(b"123456789");
assert_eq!("0x906E", &crc.to_string());
CheckPolyInitRefXorOut
0x31C30x10210x0000false0x0000
let mut crc = CRC::crc16xmodem();
crc.digest(b"123456789");
assert_eq!("0x31C3", &crc.to_string());
CheckPolyInitRefXorOut
0x04F030x1685B0x00000false0x00000
let mut crc = CRC::crc17can();
crc.digest(b"123456789");
assert_eq!("0x04F03", &crc.to_string());
CheckPolyInitRefXorOut
0x0ED8410x1028990x000000false0x000000
let mut crc = CRC::crc21can();
crc.digest(b"123456789");
assert_eq!("0x0ED841", &crc.to_string());
CheckPolyInitRefXorOut
0x21CF020x864CFB0xB704CEfalse0x000000
let mut crc = CRC::crc24();
crc.digest(b"123456789");
assert_eq!("0x21CF02", &crc.to_string());
CheckPolyInitRefXorOut
0xC25A560x00065B (rev: 0xDA6000)0x555555true0x000000
let mut crc = CRC::crc24ble();
crc.digest(b"123456789");
assert_eq!("0xC25A56", &crc.to_string());
CheckPolyInitRefXorOut
0x7979BD0x5D6DCB0xFEDCBAfalse0x000000
let mut crc = CRC::crc24flexray_a();
crc.digest(b"123456789");
assert_eq!("0x7979BD", &crc.to_string());
CheckPolyInitRefXorOut
0x1F23B80x5D6DCB0xABCDEFfalse0x000000
let mut crc = CRC::crc24flexray_b();
crc.digest(b"123456789");
assert_eq!("0x1F23B8", &crc.to_string());
CheckPolyInitRefXorOut
0xCDE7030x864CFB0x000000false0x000000
let mut crc = CRC::crc24lte_a();
crc.digest(b"123456789");
assert_eq!("0xCDE703", &crc.to_string());
CheckPolyInitRefXorOut
0x23EF520x8000630x000000false0x000000
let mut crc = CRC::crc24lte_b();
crc.digest(b"123456789");
assert_eq!("0x23EF52", &crc.to_string());
CheckPolyInitRefXorOut
0x200FA50x8000630xFFFFFFfalse0xFFFFFF
let mut crc = CRC::crc24os9();
crc.digest(b"123456789");
assert_eq!("0x200FA5", &crc.to_string());
CheckPolyInitRefXorOut
0x04C34ABF0x2030B9C70x3FFFFFFFfalse0x3FFFFFFF
let mut crc = CRC::crc30cdma();
crc.digest(b"123456789");
assert_eq!("0x04C34ABF", &crc.to_string());
CheckPolyInitRefXorOut
0xCBF439260x04C11DB7 (rev: 0xEDB88320)0xFFFFFFFFtrue0xFFFFFFFF
let mut crc = CRC::crc32();
crc.digest(b"123456789");
assert_eq!("0xCBF43926", &crc.to_string());
CheckPolyInitRefXorOut
0x181989FC0x04C11DB70xFFFFFFFFfalse0xFFFFFFFF

Output will be reversed by bytes.

let mut crc = CRC::crc32mhash();
crc.digest(b"123456789");
assert_eq!("0x181989FC", &crc.to_string());
CheckPolyInitRefXorOut
0xFC8919180x04C11DB70xFFFFFFFFfalse0xFFFFFFFF
let mut crc = CRC::crc32bzip2();
crc.digest(b"123456789");
assert_eq!("0xFC891918", &crc.to_string());
CheckPolyInitRefXorOut
0xE30692830x1EDC6F41 (rev: 0x82F63B78)0xFFFFFFFFtrue0xFFFFFFFF
let mut crc = CRC::crc32c();
crc.digest(b"123456789");
assert_eq!("0xE3069283", &crc.to_string());
CheckPolyInitRefXorOut
0x873155760xA833982B (rev: 0xD419CC15)0xFFFFFFFFtrue0xFFFFFFFF
let mut crc = CRC::crc32d();
crc.digest(b"123456789");
assert_eq!("0x87315576", &crc.to_string());
CheckPolyInitRefXorOut
0x0376E6E70x04C11DB70xFFFFFFFFfalse0x00000000
let mut crc = CRC::crc32mpeg2();
crc.digest(b"123456789");
assert_eq!("0x0376E6E7", &crc.to_string());
CheckPolyInitRefXorOut
0x765E76800x04C11DB70x00000000false0xFFFFFFFF
let mut crc = CRC::crc32posix();
crc.digest(b"123456789");
assert_eq!("0x765E7680", &crc.to_string());
CheckPolyInitRefXorOut
0x3010BF7F0x814141AB0x00000000false0x00000000
let mut crc = CRC::crc32q();
crc.digest(b"123456789");
assert_eq!("0x3010BF7F", &crc.to_string());
CheckPolyInitRefXorOut
0x340BC6D90x04C11DB7 (rev: 0xEDB88320)0x00000000true0x00000000
let mut crc = CRC::crc32jamcrc();
crc.digest(b"123456789");
assert_eq!("0x340BC6D9", &crc.to_string());
CheckPolyInitRefXorOut
0xBD0BE3380x000000AF0x00000000false0x00000000
let mut crc = CRC::crc32xfer();
crc.digest(b"123456789");
assert_eq!("0xBD0BE338", &crc.to_string());
CheckPolyInitRefXorOut
0xD4164FC6460x00048200090x0000000000false0xFFFFFFFFFF
let mut crc = CRC::crc40gsm();
crc.digest(b"123456789");
assert_eq!("0xD4164FC646", &crc.to_string());
CheckPolyInitRefXorOut
0x6C40DF5F0B4973470x42F0E1EBA9EA36930x0000000000000000false0x0000000000000000
let mut crc = CRC::crc64();
crc.digest(b"123456789");
assert_eq!("0x6C40DF5F0B497347", &crc.to_string());
CheckPolyInitRefXorOut
0xB90956C775A410010x000000000000001B (rev: 0xD800000000000000)0xFFFFFFFFFFFFFFFFtrue0xFFFFFFFFFFFFFFFF
let mut crc = CRC::crc64iso();
crc.digest(b"123456789");
assert_eq!("0xB90956C775A41001", &crc.to_string());
CheckPolyInitRefXorOut
0x62EC59E3F1A4F00A0x42F0E1EBA9EA36930xFFFFFFFFFFFFFFFFfalse0xFFFFFFFFFFFFFFFF
let mut crc = CRC::crc64we();
crc.digest(b"123456789");
assert_eq!("0x62EC59E3F1A4F00A", &crc.to_string());
CheckPolyInitRefXorOut
0xE9C6D914C4B8D9CA0xAD93D23594C935A9 (rev: 0x95AC9329AC4BC9B5)0x0000000000000000true0x0000000000000000
let mut crc = CRC::crc64jones();
crc.digest(b"123456789");
assert_eq!("0xE9C6D914C4B8D9CA", &crc.to_string());

Trait Implementations

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.