35 lines
772 B
Go
Raw Permalink Normal View History

2024-12-04 17:27:49 -08:00
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)
}
2024-12-09 22:27:52 -08:00
// parse a hexidecimal hash string
func HashParse(hash string) (uint64, error){
return strconv.ParseUint(hash, 16, 64)
}
2024-12-04 17:27:49 -08:00
type Script struct {
2024-12-12 17:29:20 -05:00
ID int64 `gorm:"primaryKey"`
2024-12-14 12:31:31 -08:00
Name string
Hash int64 // postgres does not support unsigned integers, so we have to pretend
2024-12-12 17:29:20 -05:00
Source string
SubmissionID int64 // which submission did this script first appear in
CreatedAt time.Time
UpdatedAt time.Time
2024-12-04 17:27:49 -08:00
}