package starmap import ( "b612.me/notify" ) func (r *RemoteKv) dispatch(msg *notify.Message) { switch msg.Key { case "get": data, err := r.kvmap.Get(msg.Value.MustToInterface()) msg.ReplyObj(kvMsg{ Key: msg.Value.MustToInterface(), Value: data, Err: newStarMapErr(err), }) case "delete": err := r.kvmap.Delete(msg.Value.MustToInterface()) msg.ReplyObj(kvMsg{ Key: msg.Value.MustToInterface(), Value: nil, Err: newStarMapErr(err), }) case "exists": ext := r.kvmap.Exists(msg.Value.MustToInterface()) msg.ReplyObj(kvMsg{ Key: msg.Value.MustToInterface(), Value: ext, Err: newStarMapErr(nil), }) case "store": ext := msg.Value.MustToInterface().(kvMsg) err := r.kvmap.Store(ext.Key, ext.Value) msg.ReplyObj(kvMsg{ Key: msg.Value.MustToInterface(), Value: nil, Err: newStarMapErr(err), }) } }