package storage import ( "fmt" ) type Map map[string][]byte func NewMap() *Map { m := make(map[string][]byte) n := Map(m) return &n } func (m *Map) String() string { s := "" for k, v := range *m { if s != "" { s += ",\n" } s += fmt.Sprintf("[%s]:[%s]", k, v) } return s } func (m *Map) Close() error { m = nil return nil } func (m *Map) Get(key string) ([]byte, error) { if _, ok := (*m)[key]; !ok { return nil, ErrNotFound } return (*m)[key], nil } func (m *Map) Set(key string, value []byte) error { if value == nil { if _, ok := (*m)[key]; ok { delete(*m, key) } return nil } (*m)[key] = value return nil }