From c91c1e5ddbf2851c9d7a1194e363eb32dfd9761b Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Fri, 1 Mar 2019 13:40:11 -0700 Subject: [PATCH] neato --- storage/db.go | 7 ++++++- storage/map.go | 9 +++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/storage/db.go b/storage/db.go index 297b84f..3fa5168 100644 --- a/storage/db.go +++ b/storage/db.go @@ -1,6 +1,11 @@ package storage -import "local/rproxy3/storage/packable" +import ( + "errors" + "local/rproxy3/storage/packable" +) + +var ErrNotFound = errors.New("not found") type DB interface { Get(string, string, packable.Packable) error diff --git a/storage/map.go b/storage/map.go index 29ce921..659795e 100644 --- a/storage/map.go +++ b/storage/map.go @@ -1,7 +1,6 @@ package storage import ( - "errors" "fmt" "local/rproxy3/storage/packable" ) @@ -46,7 +45,7 @@ func (m Map) Get(ns, key string, value packable.Packable) error { m[ns] = make(map[string][]byte) } if _, ok := m[ns][key]; !ok { - return errors.New("not found") + return ErrNotFound } return value.Decode(m[ns][key]) } @@ -55,6 +54,12 @@ func (m Map) Set(ns, key string, value packable.Packable) error { if _, ok := m[ns]; !ok { m[ns] = make(map[string][]byte) } + if value == nil { + if _, ok := m[ns][key]; ok { + delete(m[ns], key) + } + return nil + } b, err := value.Encode() if err != nil { return err