pkg/guid: Improve error messages

Signed-off-by: Kevin Parsons <kevpar@microsoft.com>
This commit is contained in:
Kevin Parsons
2019-05-13 14:30:09 -07:00
parent 2dc6637e2c
commit b940a6f7ae
+6 -7
View File
@@ -13,7 +13,6 @@ import (
"strconv" "strconv"
"strings" "strings"
"github.com/pkg/errors"
"golang.org/x/sys/windows" "golang.org/x/sys/windows"
) )
@@ -115,36 +114,36 @@ func (g GUID) String() string {
// format. // format.
func FromString(s string) (GUID, error) { func FromString(s string) (GUID, error) {
if len(s) != 36 { if len(s) != 36 {
return GUID{}, errors.New("invalid GUID format (length)") return GUID{}, fmt.Errorf("invalid GUID %q", s)
} }
if s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' { if s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' {
return GUID{}, errors.New("invalid GUID format (dashes)") return GUID{}, fmt.Errorf("invalid GUID %q", s)
} }
var g GUID var g GUID
data1, err := strconv.ParseUint(s[0:8], 16, 32) data1, err := strconv.ParseUint(s[0:8], 16, 32)
if err != nil { if err != nil {
return GUID{}, errors.Wrap(err, "invalid GUID format (Data1)") return GUID{}, fmt.Errorf("invalid GUID %q", s)
} }
g.Data1 = uint32(data1) g.Data1 = uint32(data1)
data2, err := strconv.ParseUint(s[9:13], 16, 16) data2, err := strconv.ParseUint(s[9:13], 16, 16)
if err != nil { if err != nil {
return GUID{}, errors.Wrap(err, "invalid GUID format (Data2)") return GUID{}, fmt.Errorf("invalid GUID %q", s)
} }
g.Data2 = uint16(data2) g.Data2 = uint16(data2)
data3, err := strconv.ParseUint(s[14:18], 16, 16) data3, err := strconv.ParseUint(s[14:18], 16, 16)
if err != nil { if err != nil {
return GUID{}, errors.Wrap(err, "invalid GUID format (Data3)") return GUID{}, fmt.Errorf("invalid GUID %q", s)
} }
g.Data3 = uint16(data3) g.Data3 = uint16(data3)
for i, x := range []int{19, 21, 24, 26, 28, 30, 32, 34} { for i, x := range []int{19, 21, 24, 26, 28, 30, 32, 34} {
v, err := strconv.ParseUint(s[x:x+2], 16, 8) v, err := strconv.ParseUint(s[x:x+2], 16, 8)
if err != nil { if err != nil {
return GUID{}, errors.Wrap(err, "invalid GUID format (Data4)") return GUID{}, fmt.Errorf("invalid GUID %q", s)
} }
g.Data4[i] = uint8(v) g.Data4[i] = uint8(v)
} }