github.com/diamondburned/arikawa/v2@v2.1.0/state/store/defaultstore/me.go (about) 1 package defaultstore 2 3 import ( 4 "sync" 5 6 "github.com/diamondburned/arikawa/v2/discord" 7 "github.com/diamondburned/arikawa/v2/state/store" 8 ) 9 10 type Me struct { 11 mut sync.RWMutex 12 self discord.User 13 } 14 15 var _ store.MeStore = (*Me)(nil) 16 17 func NewMe() *Me { 18 return &Me{} 19 } 20 21 func (m *Me) Reset() error { 22 m.mut.Lock() 23 m.self = discord.User{} 24 m.mut.Unlock() 25 26 return nil 27 } 28 29 func (m *Me) Me() (*discord.User, error) { 30 m.mut.RLock() 31 self := m.self 32 m.mut.RUnlock() 33 34 if !self.ID.IsValid() { 35 return nil, store.ErrNotFound 36 } 37 38 return &self, nil 39 } 40 41 func (m *Me) MyselfSet(me discord.User) error { 42 m.mut.Lock() 43 m.self = me 44 m.mut.Unlock() 45 46 return nil 47 }