diff --git a/truncindex/truncindex.go b/truncindex/truncindex.go index 3037e97..02610b8 100644 --- a/truncindex/truncindex.go +++ b/truncindex/truncindex.go @@ -16,10 +16,6 @@ var ( // ErrEmptyPrefix is an error returned if the prefix was empty. ErrEmptyPrefix = errors.New("Prefix can't be empty") - // ErrAmbiguousPrefix is returned if the prefix was ambiguous - // (multiple ids for the prefix). - ErrAmbiguousPrefix = errors.New("Multiple IDs found with provided prefix") - // ErrIllegalChar is returned when a space is in the ID ErrIllegalChar = errors.New("illegal character: ' '") @@ -27,6 +23,16 @@ var ( ErrNotExist = errors.New("ID does not exist") ) +// ErrAmbiguousPrefix is returned if the prefix was ambiguous +// (multiple ids for the prefix). +type ErrAmbiguousPrefix struct { + prefix string +} + +func (e ErrAmbiguousPrefix) Error() string { + return fmt.Sprintf("Multiple IDs found with provided prefix: %s", e.prefix) +} + // TruncIndex allows the retrieval of string identifiers by any of their unique prefixes. // This is used to retrieve image and container IDs by more convenient shorthand prefixes. type TruncIndex struct { @@ -105,7 +111,7 @@ func (idx *TruncIndex) Get(s string) (string, error) { if id != "" { // we haven't found the ID if there are two or more IDs id = "" - return ErrAmbiguousPrefix + return ErrAmbiguousPrefix{prefix: string(prefix)} } id = string(prefix) return nil