Expand description

Macros to calculate constant hash bytes result.

Macros from this crate does apply a specific hash function on input. Input can be literal byte array as b"content" or array of bytes as [1, 2, 3]. Rust identifier can also be use, in this case we use their utf8 string byte representation, for instance if the ident is MyStruct, then b"MyStruct" will be hashed. If multiple arguments comma separated are passed, they are concatenated then hashed.

Examples:

assert_eq!(
	sp_core_hashing_proc_macro::blake2b_256!(b"test"),
	sp_core_hashing::blake2_256(b"test"),
);
assert_eq!(
	sp_core_hashing_proc_macro::blake2b_256!([1u8]),
	sp_core_hashing::blake2_256(&[1u8]),
);
assert_eq!(
	sp_core_hashing_proc_macro::blake2b_256!([1, 2, 3]),
	sp_core_hashing::blake2_256(&[1, 2, 3]),
);
assert_eq!(
	sp_core_hashing_proc_macro::blake2b_256!(identifier),
	sp_core_hashing::blake2_256(b"identifier"),
);
assert_eq!(
	sp_core_hashing_proc_macro::blake2b_256!(identifier, b"/string"),
	sp_core_hashing::blake2_256(b"identifier/string"),
);

Macros

  • Process a Blake2 64-bit hash of bytes parameter outputs a [u8; 8]. Multiple inputs are concatenated before hashing. Input can be identifier (name of identifier as bytes is used), byte string or array of bytes.
  • Apply a Blake2 256-bit hash of bytes parameter, outputs a [u8; 32]. Multiple inputs are concatenated before hashing. Input can be identifier (name of identifier as bytes is used), byte string or array of bytes.
  • Apply a Blake2 512-bit hash of bytes parameter, outputs a [u8; 64]. Multiple inputs are concatenated before hashing. Input can be identifier (name of identifier as bytes is used), byte string or array of bytes.
  • Apply a keccak 256-bit hash on its bytes parameter, outputs a [u8; 32]. Multiple inputs are concatenated before hashing. Input can be identifier (name of identifier as bytes is used), byte string or array of bytes.
  • Apply a keccak 512-bit hash on its bytes parameter, outputs a [u8; 64]. Multiple inputs are concatenated before hashing. Input can be identifier (name of identifier as bytes is used), byte string or array of bytes.
  • Apply a sha2 256-bit hash on its bytes parameter, outputs a [u8; 32]. Multiple inputs are concatenated before hashing. Input can be identifier (name of identifier as bytes is used), byte string or array of bytes.
  • Apply a XX 64-bit hash on its bytes parameter, outputs a [u8; 8]. Multiple inputs are concatenated before hashing. Input can be identifier (name of identifier as bytes is used), byte string or array of bytes.
  • Apply a XX 128-bit hash on its bytes parameter, outputs a [u8; 16]. Multiple inputs are concatenated before hashing. Input can be identifier (name of identifier as bytes is used), byte string or array of bytes.