| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- package core
- import (
- "encoding/base64"
- )
- type VUserSet struct {
- validUserIds []VID
- userIdsAskHash map[string]int
- }
- func NewVUserSet() *VUserSet {
- vuSet := new(VUserSet)
- vuSet.validUserIds = make([]VID, 0, 16)
- vuSet.userIdsAskHash = make(map[string]int)
- return vuSet
- }
- func hashBytesToString(hash []byte) string {
- return base64.StdEncoding.EncodeToString(hash)
- }
- func (us *VUserSet) AddUser(user VUser) error {
- id := user.Id
- us.validUserIds = append(us.validUserIds, id)
- idBase64 := hashBytesToString(id.Hash([]byte("ASK")))
- us.userIdsAskHash[idBase64] = len(us.validUserIds) - 1
- return nil
- }
- func (us VUserSet) IsValidUserId(askHash []byte) (*VID, bool) {
- askBase64 := hashBytesToString(askHash)
- idIndex, found := us.userIdsAskHash[askBase64]
- if found {
- return &us.validUserIds[idIndex], true
- }
- return nil, false
- }
|