33 lines
427 B
Go
33 lines
427 B
Go
package slug
|
|
|
|
import "sync"
|
|
|
|
type Manager interface {
|
|
Get() string
|
|
Set(slug string)
|
|
}
|
|
|
|
type manager struct {
|
|
slug string
|
|
slugMu sync.RWMutex
|
|
}
|
|
|
|
func NewManager() Manager {
|
|
return &manager{
|
|
slug: "",
|
|
slugMu: sync.RWMutex{},
|
|
}
|
|
}
|
|
|
|
func (s *manager) Get() string {
|
|
s.slugMu.RLock()
|
|
defer s.slugMu.RUnlock()
|
|
return s.slug
|
|
}
|
|
|
|
func (s *manager) Set(slug string) {
|
|
s.slugMu.Lock()
|
|
s.slug = slug
|
|
s.slugMu.Unlock()
|
|
}
|