package model import ( "fmt" "strconv" "time" "github.com/dchest/siphash" ) // compute the hash of a source code string func HashSource(source string) uint64{ return siphash.Hash(0, 0, []byte(source)) } // format a hash value as a hexidecimal string func HashFormat(hash uint64) string{ return fmt.Sprintf("%016x", hash) } // parse a hexidecimal hash string func HashParse(hash string) (uint64, error){ return strconv.ParseUint(hash, 16, 64) } type Script struct { ID int64 `gorm:"primaryKey"` Name string Hash int64 // postgres does not support unsigned integers, so we have to pretend Source string SubmissionID int64 // which submission did this script first appear in CreatedAt time.Time UpdatedAt time.Time }