Macro tetsy_fixed_hash::construct_fixed_hash[][src]

macro_rules! construct_fixed_hash {
    ( $(#[$attr:meta])* $visibility:vis struct $name:ident ( $n_bytes:expr ); ) => { ... };
}

Construct a fixed-size hash type.

Examples

Create a public unformatted hash type with 32 bytes size.

use tetsy_fixed_hash::construct_fixed_hash;

construct_fixed_hash!{ pub struct H256(32); }
assert_eq!(std::mem::size_of::<H256>(), 32);

With additional attributes and doc comments.

use tetsy_fixed_hash::construct_fixed_hash;
construct_fixed_hash!{
    /// My unformatted 160 bytes sized hash type.
    #[cfg_attr(feature = "serialize", derive(Serialize, Deserialize))]
    pub struct H160(20);
}
assert_eq!(std::mem::size_of::<H160>(), 20);

The visibility modifier is optional and you can create a private hash type.

use tetsy_fixed_hash::construct_fixed_hash;
construct_fixed_hash!{ struct H512(64); }
assert_eq!(std::mem::size_of::<H512>(), 64);