Skip to content

Commit

Permalink
Adds support for uint16 with GetUint16
Browse files Browse the repository at this point in the history
We have encountered numerous places where it is convenient to have viper return a `uint16` value, especially in combination with the new `netip` package  that represents a port correctly as `uint16` rather than just an `int`. cobra already supports this, but we need a conversion from the existing `GetUint` method in viper.
  • Loading branch information
oxisto committed Jul 19, 2022
1 parent 5247643 commit 67219c7
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 0 deletions.
7 changes: 7 additions & 0 deletions viper.go
Original file line number Diff line number Diff line change
Expand Up @@ -988,6 +988,13 @@ func (v *Viper) GetUint(key string) uint {
return cast.ToUint(v.Get(key))
}

// GetUint16 returns the value associated with the key as an unsigned integer.
func GetUint16(key string) uint16 { return v.GetUint16(key) }

func (v *Viper) GetUint16(key string) uint16 {
return cast.ToUint16(v.Get(key))
}

// GetUint32 returns the value associated with the key as an unsigned integer.
func GetUint32(key string) uint32 { return v.GetUint32(key) }

Expand Down
4 changes: 4 additions & 0 deletions viper_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1953,6 +1953,10 @@ func TestMergeConfig(t *testing.T) {
t.Fatalf("uint pop != 37890, = %d", pop)
}

if pop := v.GetUint16("hello.pop"); pop != uint16(37890) {
t.Fatalf("uint pop != 37890, = %d", pop)
}

if pop := v.GetUint32("hello.pop"); pop != 37890 {
t.Fatalf("uint32 pop != 37890, = %d", pop)
}
Expand Down

0 comments on commit 67219c7

Please sign in to comment.