Crate endian_hasher

Source
Expand description

These simple wrapper types for Hasher change the endianness used when hashing primitive numeric types.

§Examples

use std::collections::hash_map::DefaultHasher;
use std::hash::Hasher;
use endian_hasher::*;

assert_eq!( {
    let mut h1 = HasherToLE(DefaultHasher::new());
    h1.write_i16(-3);
    h1.finish()
}, {
    let mut h0 = DefaultHasher::new();
    h0.write_i16( i16::to_le(-3) );
    h0.finish()
} );

assert_eq!( {
    let mut h1 = HasherToBE(DefaultHasher::new());
    h1.write_u32(79);
    h1.finish()
}, {
    let mut h0 = DefaultHasher::new();
    h0.write_u32( 79u32.to_be() );
    h0.finish()
} );

assert_eq!( {
    let mut h1 = HasherSwapBytes(DefaultHasher::new());
    h1.write_u64(0x12345678);
    h1.finish()
}, {
    let mut h0 = DefaultHasher::new();
    h0.write_u64( u64::swap_bytes(0x12345678) );
    h0.finish()
} );

Structs§

  • Apply a primitive numeric type’s from_be method before hashing.
  • Apply a primitive numeric type’s from_le method before hashing.
  • Apply a primitive numeric type’s swap_bytes method before hashing.
  • Apply a primitive numeric type’s to_be method before hashing.
  • Apply a primitive numeric type’s to_le method before hashing.