make omitzero omit nil pointers.
diff --git a/encode_test.go b/encode_test.go
index a37adf9..50bd9bb 100644
--- a/encode_test.go
+++ b/encode_test.go
@@ -76,6 +76,10 @@
A int "a,omitempty"
B int "b,omitempty"
}{0, 0}},
+ {"{}\n", &struct {
+ A *struct{ X int } "a,omitempty"
+ B int "b,omitempty"
+ }{nil, 0}},
// Flow flag
{"a: [1, 2]\n", &struct {
diff --git a/goyaml.go b/goyaml.go
index e7ba7a3..84dd1a7 100644
--- a/goyaml.go
+++ b/goyaml.go
@@ -262,6 +262,8 @@
return v.Len() == 0
case reflect.Map:
return v.Len() == 0
+ case reflect.Ptr:
+ return v.IsNil()
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
return v.Int() == 0
case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: