blob: 92c53395ec302056e83b146f93dbaaef692fd642 [file] [log] [blame]
package main
type Storage interface {
Put(id string, update StatusMsg) error
Get(id string) (*StatusMsg, error)
List() ([]StatusMsg, error)
}
type MemoryStorage struct {
Data map[string]StatusMsg
}
func NewMemoryStorage() *MemoryStorage {
return &MemoryStorage{
Data: make(map[string]StatusMsg),
}
}
func (s *MemoryStorage) Put(id string, update StatusMsg) error {
s.Data[id] = update
return nil
}
func (s *MemoryStorage) Get(id string) (*StatusMsg, error) {
m, ok := s.Data[id]
if !ok {
return nil, nil
}
return &m, nil
}
func (s *MemoryStorage) List() ([]StatusMsg, error) {
r := make([]StatusMsg, len(s.Data))
i := 0
for _, v := range s.Data {
r[i] = v
i += 1
}
return r, nil
}