Files
Ilya Groshev 02f511f40c Initial commit
2026-04-14 09:28:26 +03:00

33 lines
600 B
Go

package store
import (
"fmt"
"strconv"
"strings"
)
func marshalKey(vals ...int64) []byte {
b := strconv.AppendInt(nil, vals[0], 10)
for _, v := range vals[1:] {
b = append(b, ':')
b = strconv.AppendInt(b, v, 10)
}
return b
}
func unmarshalKey(text []byte, name string, n int) ([]int64, error) {
parts := strings.Split(string(text), ":")
if len(parts) != n {
return nil, fmt.Errorf("invalid %s: %s", name, text)
}
out := make([]int64, n)
for i, p := range parts {
v, err := strconv.ParseInt(p, 10, 64)
if err != nil {
return nil, err
}
out[i] = v
}
return out, nil
}