summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Flint <[email protected]>2022-10-02 12:39:56 -0700
committerGitHub <[email protected]>2022-10-02 12:39:56 -0700
commite7a360897d12fb65e649c4fb5852da4127d79544 (patch)
treeb1987bc95d347778704b4aff6d554a4f92c62638
parentb3bcd8035e45ea06ee596f0c35144df847c365b6 (diff)
parent08e5e4d9560ac248bb84e623eee4a25017c8637c (diff)
Merge pull request #10 from daenney/parseint
Support different integer formats
-rw-r--r--scalar.go4
-rw-r--r--scalar_test.go2
2 files changed, 4 insertions, 2 deletions
diff --git a/scalar.go b/scalar.go
index 421bfac..0c17cd4 100644
--- a/scalar.go
+++ b/scalar.go
@@ -108,13 +108,13 @@ func ParseValue(v reflect.Value, s string) error {
}
v.SetBool(x)
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
- x, err := strconv.ParseInt(s, 10, v.Type().Bits())
+ x, err := strconv.ParseInt(s, 0, v.Type().Bits())
if err != nil {
return err
}
v.SetInt(x)
case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
- x, err := strconv.ParseUint(s, 10, v.Type().Bits())
+ x, err := strconv.ParseUint(s, 0, v.Type().Bits())
if err != nil {
return err
}
diff --git a/scalar_test.go b/scalar_test.go
index 1c51c77..e1fc03d 100644
--- a/scalar_test.go
+++ b/scalar_test.go
@@ -48,6 +48,7 @@ func TestParseValue(t *testing.T) {
// integers
assertParse(t, int(123), "123")
+ assertParse(t, int(123), "1_2_3")
assertParse(t, int8(123), "123")
assertParse(t, int16(123), "123")
assertParse(t, int32(123), "123")
@@ -55,6 +56,7 @@ func TestParseValue(t *testing.T) {
// unsigned integers
assertParse(t, uint(123), "123")
+ assertParse(t, uint(123), "1_2_3")
assertParse(t, byte(123), "123")
assertParse(t, uint8(123), "123")
assertParse(t, uint16(123), "123")