diff --git a/goextVersion.go b/goextVersion.go index 7d6ec88..656ab82 100644 --- a/goextVersion.go +++ b/goextVersion.go @@ -1,5 +1,5 @@ package goext -const GoextVersion = "0.0.470" +const GoextVersion = "0.0.471" -const GoextVersionTimestamp = "2024-06-11T19:34:48+0200" +const GoextVersionTimestamp = "2024-06-11T19:39:43+0200" diff --git a/gojson/encode.go b/gojson/encode.go index 903c03b..aca278f 100644 --- a/gojson/encode.go +++ b/gojson/encode.go @@ -769,13 +769,6 @@ type structFields struct { } func (se structEncoder) encode(e *encodeState, v reflect.Value, opts encOpts) { - - if v.CanAddr() && v.Addr().Type().Implements(goextJsonMarshallerType) { - if gejm, ok := v.Addr().Interface().(GoextJsonMarshaller); ok { - gejm.PreGoJsonMarshal() - } - } - next := byte('{') FieldLoop: for i := range se.fields.list { diff --git a/gojson/interfaces.go b/gojson/interfaces.go deleted file mode 100644 index 5f0fe02..0000000 --- a/gojson/interfaces.go +++ /dev/null @@ -1,13 +0,0 @@ -package json - -import ( - "reflect" -) - -type GoextJsonMarshaller interface { - PreGoJsonMarshal() -} - -var ( - goextJsonMarshallerType = reflect.TypeOf((*GoextJsonMarshaller)(nil)).Elem() -) diff --git a/gojson/interfaces_test.go b/gojson/interfaces_test.go deleted file mode 100644 index 502afbe..0000000 --- a/gojson/interfaces_test.go +++ /dev/null @@ -1,37 +0,0 @@ -package json - -import ( - "fmt" - "testing" -) - -type testStruct1 struct { - TS2 *testStruct2 `json:"ts2"` -} - -type testStruct2 struct { - A string `json:"a"` -} - -func (t *testStruct2) PreGoJsonMarshal() { - t.A = "Hello" -} - -func TestGoextJsonMarshaller(t *testing.T) { - t1 := testStruct1{TS2: &testStruct2{}} - - v, err := Marshal(t1) - if err != nil { - t.Fatal() - } - - fmt.Printf("%s\n", v) - - if string(v) != `{"ts2":{"a":"Hello"}}` { - t.Fatalf("PreGoJsonMarshal failed") - } - - if t1.TS2.A != "Hello" { - t.Fatalf("PreGoJsonMarshal failed") - } -}