MCPcopy Create free account
hub / github.com/aws/smithy-go / decode

Method decode

document/cbor/decode.go:57–85  ·  view source on GitHub ↗
(cv cbor.Value, rv reflect.Value, tag serde.Tag)

Source from the content-addressed store, hash-verified

55}
56
57func (d *decoder) decode(cv cbor.Value, rv reflect.Value, tag serde.Tag) error {
58 if _, ok := cv.(*cbor.Nil); ok {
59 return d.decodeNil(serde.Indirect(rv, true))
60 }
61
62 rv = serde.Indirect(rv, false)
63 if err := d.unsupportedType(rv); err != nil {
64 return err
65 }
66
67 switch v := cv.(type) {
68 case cbor.Uint, cbor.NegInt:
69 return d.decodeInt(v, rv)
70 case cbor.Float64:
71 return d.decodeFloat(float64(v), rv)
72 case cbor.String:
73 return d.decodeString(string(v), rv)
74 case cbor.Bool:
75 return d.decodeBool(bool(v), rv)
76 case cbor.List:
77 return d.decodeList(v, rv)
78 case cbor.Map:
79 return d.decodeMap(v, rv)
80 case *cbor.Tag:
81 return d.decodeTag(v, rv)
82 default:
83 return fmt.Errorf("unsupported cbor document type %T", v)
84 }
85}
86
87func (d *decoder) decodeInt(v cbor.Value, rv reflect.Value) error {
88 switch rv.Kind() {

Callers 3

DecodeMethod · 0.95
decodeListMethod · 0.95
decodeMapMethod · 0.95

Calls 11

decodeNilMethod · 0.95
unsupportedTypeMethod · 0.95
decodeIntMethod · 0.95
decodeFloatMethod · 0.95
decodeStringMethod · 0.95
decodeBoolMethod · 0.95
decodeListMethod · 0.95
decodeMapMethod · 0.95
decodeTagMethod · 0.95
IndirectFunction · 0.92
ErrorfMethod · 0.80

Tested by

no test coverage detected