@Override
        public int hashCode() {
            return Objects.hash(pathSnapshots);
        }
Take a deep snapshot of a directory capturing all relative paths, file sizes,
path types and sha256 hashes of each file. The root path
is not included in the output and all paths in the snapshot are relative to it.
<p>
It means you can do something like
<pre>{@code
assertThat(DirectorySnapshot.of(path1))
    .isEqualTo(DirectorySnapshot.of(path2))
}</pre>
</p>

@param path     The root path to create a snapshot of
@param parallel Whether to use multiple threads to scan the dir
stroom-test-common/src/main/java/stroom/test/common/DirectorySnapshot.java