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

Method encodeScalar

document/json/encoder.go:228–251  ·  view source on GitHub ↗
(vp valueProvider, rv reflect.Value)

Source from the content-addressed store, hash-verified

226}
227
228func (e *Encoder) encodeScalar(vp valueProvider, rv reflect.Value) error {
229 if rv.Type() == serde.ReflectTypeOf.DocumentNumber {
230 number := rv.Interface().(document.Number)
231 if !isValidJSONNumber(number.String()) {
232 return &document.InvalidMarshalError{Message: fmt.Sprintf("invalid number literal: %s", number)}
233 }
234 vp.GetValue().Write([]byte(number))
235 }
236
237 switch rv.Kind() {
238 case reflect.Bool:
239 vp.GetValue().Boolean(rv.Bool())
240 case reflect.String:
241 vp.GetValue().String(rv.String())
242 default:
243 // Fallback to encoding numbers, will return invalid type if not supported
244 err := e.encodeNumber(vp, rv)
245 if err != nil {
246 return err
247 }
248 }
249
250 return nil
251}
252
253func (e *Encoder) encodeNumber(vp valueProvider, rv reflect.Value) error {
254 switch rv.Kind() {

Callers 1

encodeMethod · 0.95

Calls 6

encodeNumberMethod · 0.95
isValidJSONNumberFunction · 0.85
StringMethod · 0.65
WriteMethod · 0.65
GetValueMethod · 0.65
BooleanMethod · 0.45

Tested by

no test coverage detected