diff options
Diffstat (limited to 'dictionary.go')
| -rw-r--r-- | dictionary.go | 20 |
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 +} |
