text: import "upper.io/db.v3/internal/cache/hashstructure"
  hashstructure.go include.go
  func Hash(v interface{}, opts *HashOptions) (uint64, error)
  Hash returns the hash value of an arbitrary value.
  If opts is nil, then default options will be used. See HashOptions for the default values.
  Notes on the value:
  * Unexported fields on structs are ignored and do not affect the hash value. * Adding an exported field to a struct with the zero value will change the hash value.
  For structs, the hashing can be controlled using tags. For example:
  struct { Name string UUID string `hash:"ignore"` }
  The available tag values are:
  * "ignore" - The field will be ignored and not affect the hash code. * "set" - The field will be treated as a set, where ordering doesn't affect the hash code. This only works for slices.
  type HashOptions struct { // Hasher is the hash function to use. If this isn't set, it will // default to FNV. Hasher hash.Hash64 // TagName is the struct tag to look at when hashing the structure. // By default this is "hash". TagName string }
  HashOptions are options that are available for hashing.
  Includable is an interface that can optionally be implemented by a struct. It will be called for each field in the struct to check whether it should be included in the hash.
  IncludableMap is an interface that can optionally be implemented by a struct. It will be called when a map-type field is found to ask the struct if the map item should be included in the hash.
  Package hashstructure imports 5 packages (graph) and is imported by 1 packages. Updated 2018-09-30. Refresh now. Tools for package owners.