const-struct-version 0.2.0

A trait plus proc-macro to generate a hash based on the fields of a struct. Useful for intelligently expiring a cache when the stored object changes.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use const_struct_version::StructVersion;

#[derive(StructVersion)]
struct UnitStruct;

#[derive(StructVersion)]
struct UnitStruct2;

#[test]
fn test_unit_structs_give_same_hash() {
    let version = <UnitStruct as StructVersion>::version();
    let version2 = <UnitStruct2 as StructVersion>::version();

    insta::assert_debug_snapshot!(version);

    // Ensure these are the same.
    assert_eq!(version, version2);
}