diff options
Diffstat (limited to 'vendor/github.com/hashicorp/terraform/helper/hashcode/hashcode.go')
-rw-r--r-- | vendor/github.com/hashicorp/terraform/helper/hashcode/hashcode.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/vendor/github.com/hashicorp/terraform/helper/hashcode/hashcode.go b/vendor/github.com/hashicorp/terraform/helper/hashcode/hashcode.go new file mode 100644 index 0000000..64d8263 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform/helper/hashcode/hashcode.go | |||
@@ -0,0 +1,22 @@ | |||
1 | package hashcode | ||
2 | |||
3 | import ( | ||
4 | "hash/crc32" | ||
5 | ) | ||
6 | |||
7 | // String hashes a string to a unique hashcode. | ||
8 | // | ||
9 | // crc32 returns a uint32, but for our use we need | ||
10 | // and non negative integer. Here we cast to an integer | ||
11 | // and invert it if the result is negative. | ||
12 | func String(s string) int { | ||
13 | v := int(crc32.ChecksumIEEE([]byte(s))) | ||
14 | if v >= 0 { | ||
15 | return v | ||
16 | } | ||
17 | if -v >= 0 { | ||
18 | return -v | ||
19 | } | ||
20 | // v == MinInt | ||
21 | return 0 | ||
22 | } | ||