summaryrefslogtreecommitdiff
path: root/dictionary.go
diff options
context:
space:
mode:
Diffstat (limited to 'dictionary.go')
-rw-r--r--dictionary.go20
1 files changed, 18 insertions, 2 deletions
diff --git a/dictionary.go b/dictionary.go
index e2e6c38..14eddd3 100644
--- a/dictionary.go
+++ b/dictionary.go
@@ -4,8 +4,9 @@ type Dictionary map[string]string
type DictionaryError string
var (
- ErrorNotFound = DictionaryError("could not find the word you were looking for")
- ErrorWordExists = DictionaryError("cannot add word because it already exists")
+ ErrorNotFound = DictionaryError("could not find the word you were looking for")
+ ErrorWordDoesNotExist = DictionaryError("cannot update word because it does not exist")
+ ErrorWordExists = DictionaryError("cannot add word because it already exists")
)
func (e DictionaryError) Error() string {
@@ -35,3 +36,18 @@ func (d Dictionary) Add(word, definition string) error {
return nil
}
+
+func (d Dictionary) Update(word, definition string) error {
+ _, err := d.Search(word)
+
+ switch err {
+ case ErrorNotFound:
+ return ErrorWordDoesNotExist
+ case nil:
+ d[word] = definition
+ default:
+ return err
+ }
+
+ return nil
+}