github.com/dougneal/terraform@v0.6.15-0.20170330092735-b6a3840768a4/helper/hashcode/hashcode.go (about)

     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  }