File: tneginthash.nim

package info (click to toggle)
nim 2.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,911,644 kB
  • sloc: sh: 24,603; ansic: 1,761; python: 1,492; makefile: 1,013; sql: 298; asm: 141; xml: 13
file content (21 lines) | stat: -rw-r--r-- 363 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# issue #19929

import std/[tables, hashes]

type Foo = object
  a: int

proc hash(f: Foo): Hash =
  var h: Hash = 0
  h = h !& hash(f.a)
  result = !$h

proc transpose[T, S](data: array[T, S]): Table[S, T] =
  for i, x in data:
    result[x] = i

const xs = [Foo(a: 5), Foo(a: -5)]
const x = transpose(xs)

doAssert x[Foo(a: -5)] == 1
doAssert x[Foo(a: 5)] == 0