MCPcopy
hub / github.com/segmentio/kafka-go / loadValue

Function loadValue

protocol/prototest/reflect.go:41–68  ·  view source on GitHub ↗
(v reflect.Value)

Source from the content-addressed store, hash-verified

39}
40
41func loadValue(v reflect.Value) (reset func()) {
42 resets := []func(){}
43
44 forEachField(v, func(f reflect.Value) {
45 switch x := f.Interface().(type) {
46 case protocol.RecordReader:
47 records := loadRecords(x)
48 resetFunc := func() {
49 f.Set(reflect.ValueOf(protocol.NewRecordReader(makeRecords(records)...)))
50 }
51 resetFunc()
52 resets = append(resets, resetFunc)
53 case io.Reader:
54 buf, _ := io.ReadAll(x)
55 resetFunc := func() {
56 f.Set(reflect.ValueOf(bytes.NewBuffer(buf)))
57 }
58 resetFunc()
59 resets = append(resets, resetFunc)
60 }
61 })
62
63 return func() {
64 for _, f := range resets {
65 f()
66 }
67 }
68}
69
70func forEachField(v reflect.Value, do func(reflect.Value)) {
71 for v.Kind() == reflect.Ptr {

Callers 1

loadFunction · 0.85

Calls 4

NewRecordReaderFunction · 0.92
forEachFieldFunction · 0.85
loadRecordsFunction · 0.85
makeRecordsFunction · 0.70

Tested by

no test coverage detected