12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package store
- import (
- "encoding/json"
- "jjl-tools/tinodeService/store/types"
- )
- // Unique ID generator
- var uGen types.UidGenerator
- type configType struct {
- // 16-byte key for XTEA. Used to initialize types.UidGenerator.
- UidKey []byte `json:"uid_key"`
- // Maximum number of results to return from adapter.
- MaxResults int `json:"max_results"`
- // Configurations for individual adapters.
- Adapters map[string]json.RawMessage `json:"adapters"`
- }
- // GetUid generates a unique ID suitable for use as a primary key.
- func GetUid() types.Uid {
- return uGen.Get()
- }
- // GetUidString generate unique ID as string
- func GetUidString() string {
- return uGen.GetStr()
- }
- // DecodeUid takes an XTEA encrypted Uid and decrypts it into an int64.
- // This is needed for sql compatibility. Tte original int64 values
- // are generated by snowflake which ensures that the top bit is unset.
- func DecodeUid(uid types.Uid) int64 {
- if uid.IsZero() {
- return 0
- }
- return uGen.DecodeUid(uid)
- }
- // EncodeUid applies XTEA encryption to an int64 value. It's the inverse of DecodeUid.
- func EncodeUid(id int64) types.Uid {
- if id == 0 {
- return types.ZeroUid
- }
- return uGen.EncodeInt64(id)
- }
- // UsersObjMapper is a users struct to hold methods for persistence mapping for the User object.
- type UsersObjMapper struct{}
- // Users is the ancor for storing/retrieving User objects
- var Users UsersObjMapper
|