summaryrefslogtreecommitdiff
path: root/vendor/github.com/goccy/go-json/internal/decoder/invalid.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/goccy/go-json/internal/decoder/invalid.go')
-rw-r--r--vendor/github.com/goccy/go-json/internal/decoder/invalid.go45
1 files changed, 45 insertions, 0 deletions
diff --git a/vendor/github.com/goccy/go-json/internal/decoder/invalid.go b/vendor/github.com/goccy/go-json/internal/decoder/invalid.go
new file mode 100644
index 000000000..1ef50a7d3
--- /dev/null
+++ b/vendor/github.com/goccy/go-json/internal/decoder/invalid.go
@@ -0,0 +1,45 @@
+package decoder
+
+import (
+ "reflect"
+ "unsafe"
+
+ "github.com/goccy/go-json/internal/errors"
+ "github.com/goccy/go-json/internal/runtime"
+)
+
+type invalidDecoder struct {
+ typ *runtime.Type
+ kind reflect.Kind
+ structName string
+ fieldName string
+}
+
+func newInvalidDecoder(typ *runtime.Type, structName, fieldName string) *invalidDecoder {
+ return &invalidDecoder{
+ typ: typ,
+ kind: typ.Kind(),
+ structName: structName,
+ fieldName: fieldName,
+ }
+}
+
+func (d *invalidDecoder) DecodeStream(s *Stream, depth int64, p unsafe.Pointer) error {
+ return &errors.UnmarshalTypeError{
+ Value: "object",
+ Type: runtime.RType2Type(d.typ),
+ Offset: s.totalOffset(),
+ Struct: d.structName,
+ Field: d.fieldName,
+ }
+}
+
+func (d *invalidDecoder) Decode(ctx *RuntimeContext, cursor, depth int64, p unsafe.Pointer) (int64, error) {
+ return 0, &errors.UnmarshalTypeError{
+ Value: "object",
+ Type: runtime.RType2Type(d.typ),
+ Offset: cursor,
+ Struct: d.structName,
+ Field: d.fieldName,
+ }
+}