package starmap import "errors" func Get(key string) (interface{}, error) { var err error kvmu.RLock() defer kvmu.RUnlock() data, ok := kvMap[key] if !ok { err = errors.New("key not exists") } return data, err } func Store(key string, value interface{}) error { kvmu.Lock() defer kvmu.Unlock() kvMap[key] = value return nil } func Delete(key string) error { kvmu.Lock() defer kvmu.Unlock() delete(kvMap, key) return nil } func Range(run func(k string, v interface{}) bool) error { for k, v := range kvMap { if !run(k, v) { break } } return nil }