Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"model.go",
"tuple.go",
],
importpath = "go-common/app/service/bbq/recsys-recall/model",
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1 @@
package model

View File

@@ -0,0 +1,61 @@
package model
import (
"encoding/binary"
"math"
)
const (
_tupleSize = 12
)
// Tuple .
type Tuple struct {
Svid uint64
Score float32
}
// PriorityTuple .
type PriorityTuple struct {
Tuple
Tag string
Name string
Priority int32
}
// ToBytes .
func (t *Tuple) ToBytes() []byte {
b := make([]byte, 12)
b[0] = byte(t.Svid)
b[1] = byte(t.Svid >> 8)
b[2] = byte(t.Svid >> 16)
b[3] = byte(t.Svid >> 24)
b[4] = byte(t.Svid >> 32)
b[5] = byte(t.Svid >> 40)
b[6] = byte(t.Svid >> 48)
b[7] = byte(t.Svid >> 56)
// score
score := math.Float32bits(t.Score)
b[8] = byte(score)
b[9] = byte(score >> 8)
b[10] = byte(score >> 16)
b[11] = byte(score >> 24)
return b
}
// ParseTuple .
func ParseTuple(b []byte) *Tuple {
svid := binary.LittleEndian.Uint64(b[:8])
score := math.Float32frombits(binary.LittleEndian.Uint32(b[8:12]))
return &Tuple{
Svid: svid,
Score: score,
}
}
// TupleSize .
func TupleSize() int {
return _tupleSize
}