MCPcopy
hub / github.com/tinylib/msgp / mapAssign

Method mapAssign

gen/spec.go:407–447  ·  view source on GitHub ↗

assign key to value based on varnames

(m *Map)

Source from the content-addressed store, hash-verified

405
406// assign key to value based on varnames
407func (p *printer) mapAssign(m *Map) {
408 if !p.ok() {
409 return
410 }
411
412 if key, ok := m.Key.(*BaseElem); ok {
413 fromBase := key.FromBase()
414 shimErr := key.ShimErrs
415 if m.AutoMapShims && CanAutoShim[key.Value] {
416 fromBase = "msgp.AutoShim{}.Parse" + key.Value.String()
417 shimErr = true
418 }
419 if !m.AllowBinMaps && fromBase != "" {
420 if key.Value == String && key.ShimFromBase != "" {
421 p.printf("\nvar %sTmp %s", m.Keyidx, key.TypeName())
422 if key.ShimErrs {
423 p.printf("\n%sTmp, err = %s(%s)", m.Keyidx, fromBase, m.Keyidx)
424 p.wrapErrCheck("\"shim: " + fromBase + "\"")
425 } else {
426 p.printf("\n%sTmp = %s(%s)", m.Keyidx, fromBase, m.Keyidx)
427 }
428 p.printf("\n%s[%sTmp] = %s", m.Varname(), m.Keyidx, m.Validx)
429 return
430 } else if key.Value == IDENT {
431 p.printf("\n%s[%s(%s)] = %s", m.Varname(), fromBase, m.Keyidx, m.Validx)
432 return
433 } else {
434 if shimErr {
435 p.printf("\nvar %sTmp %s", m.Keyidx, strings.ToLower(key.Value.String()))
436 p.printf("\n%sTmp, err = %s(%s)", m.Keyidx, fromBase, m.Keyidx)
437 p.wrapErrCheck("\"shim: " + m.Varname() + "\"")
438 p.printf("\n%s[%s(%sTmp)] = %s", m.Varname(), key.FromBase(), m.Keyidx, m.Validx)
439 } else {
440 p.printf("\n%s[%s(%s)] = %s", m.Varname(), fromBase, m.Keyidx, m.Validx)
441 }
442 return
443 }
444 }
445 }
446 p.printf("\n%s[%s] = %s", m.Varname(), m.Keyidx, m.Validx)
447}
448
449// clear map keys
450func (p *printer) clearMap(name string) {

Callers 2

gMapMethod · 0.80
gMapMethod · 0.80

Calls 7

okMethod · 0.95
printfMethod · 0.95
wrapErrCheckMethod · 0.95
FromBaseMethod · 0.80
StringMethod · 0.65
TypeNameMethod · 0.65
VarnameMethod · 0.65

Tested by

no test coverage detected