Reduce custom error allocation (#70)
Zero allocation by using non-pointer error.
related #69
name old time/op new time/op delta
ParseBadLength-16 15.4ns ± 0% 3.5ns ± 0% ~ (p=1.000 n=1+1)
name old alloc/op new alloc/op delta
ParseBadLength-16 8.00B ± 0% 0.00B ~ (p=1.000 n=1+1)
name old allocs/op new allocs/op delta
ParseBadLength-16 1.00 ± 0% 0.00 ~ (p=1.000 n=1+1)
diff --git a/uuid.go b/uuid.go
index daf3639..60d26bb 100644
--- a/uuid.go
+++ b/uuid.go
@@ -37,7 +37,7 @@
type invalidLengthError struct{ len int }
-func (err *invalidLengthError) Error() string {
+func (err invalidLengthError) Error() string {
return fmt.Sprintf("invalid UUID length: %d", err.len)
}
@@ -74,7 +74,7 @@
}
return uuid, nil
default:
- return uuid, &invalidLengthError{len(s)}
+ return uuid, invalidLengthError{len(s)}
}
// s is now at least 36 bytes long
// it must be of the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
@@ -118,7 +118,7 @@
}
return uuid, nil
default:
- return uuid, &invalidLengthError{len(b)}
+ return uuid, invalidLengthError{len(b)}
}
// s is now at least 36 bytes long
// it must be of the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx