You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
584 B

package members
import "sync"
type Member struct {
Nickname string
Token string
}
type Database struct {
members map[string]Member
membersLock sync.RWMutex
}
func (d *Database) AddMember(member Member) {
// TODO: validate member!
d.membersLock.Lock()
d.members[member.Token] = member
d.membersLock.Unlock()
}
func (d *Database) GetMember(token string) (Member, bool) {
d.membersLock.RLock()
defer d.membersLock.RUnlock()
member, ok := d.members[token]
return member, ok
}
func NewDatabase() *Database {
return &Database{
members: map[string]Member{},
}
}