diff --git a/decimal.go b/decimal.go index 4f6d81ae..d2c0c518 100644 --- a/decimal.go +++ b/decimal.go @@ -1411,6 +1411,13 @@ type NullDecimal struct { Valid bool } +func NewNullDecimal(d Decimal) NullDecimal { + return NullDecimal{ + Decimal: d, + Valid: true, + } +} + // Scan implements the sql.Scanner interface for database deserialization. func (d *NullDecimal) Scan(value interface{}) error { if value == nil { diff --git a/decimal_test.go b/decimal_test.go index 6367653e..3c7210ac 100644 --- a/decimal_test.go +++ b/decimal_test.go @@ -3081,6 +3081,18 @@ func TestTan(t *testing.T) { } } +func TestNewNullDecimal(t *testing.T) { + d := NewFromInt(1) + nd := NewNullDecimal(d) + + if !nd.Valid { + t.Errorf("expected NullDecimal to be valid") + } + if nd.Decimal != d { + t.Errorf("expected NullDecimal to hold the provided Decimal") + } +} + func ExampleNewFromFloat32() { fmt.Println(NewFromFloat32(123.123123123123).String()) fmt.Println(NewFromFloat32(.123123123123123).String())