5857dec730
Reviewed-on: #157 Co-authored-by: Bagas <bagas@fossy.my.id> Co-committed-by: Bagas <bagas@fossy.my.id>
32 lines
366 B
Go
32 lines
366 B
Go
package slug
|
|
|
|
import "sync"
|
|
|
|
type Slug interface {
|
|
String() string
|
|
Set(slug string)
|
|
}
|
|
|
|
type slug struct {
|
|
mu sync.RWMutex
|
|
slug string
|
|
}
|
|
|
|
func New() Slug {
|
|
return &slug{
|
|
slug: "",
|
|
}
|
|
}
|
|
|
|
func (s *slug) String() string {
|
|
s.mu.RLock()
|
|
defer s.mu.RUnlock()
|
|
return s.slug
|
|
}
|
|
|
|
func (s *slug) Set(slug string) {
|
|
s.mu.Lock()
|
|
defer s.mu.Unlock()
|
|
s.slug = slug
|
|
}
|