MCPcopy Create free account
hub / github.com/astercloud/aster / MergeNamed

Function MergeNamed

pkg/stream/stream.go:521–538  ·  view source on GitHub ↗

MergeNamed 将多个命名读取器合并为一个 当源流结束时,返回带有流名称的 SourceEOF

(readers map[string]*Reader[T])

Source from the content-addressed store, hash-verified

519// MergeNamed 将多个命名读取器合并为一个
520// 当源流结束时,返回带有流名称的 SourceEOF
521func MergeNamed[T any](readers map[string]*Reader[T]) *Reader[T] {
522 if len(readers) == 0 {
523 return nil
524 }
525
526 streams := make([]*stream[T], 0, len(readers))
527 names := make([]string, 0, len(readers))
528
529 for name, r := range readers {
530 streams = append(streams, readerToStream(r))
531 names = append(names, name)
532 }
533
534 return &Reader[T]{
535 typ: readerTypeMulti,
536 msr: newMultiStreamReader(streams, names),
537 }
538}
539
540func readerToStream[T any](r *Reader[T]) *stream[T] {
541 switch r.typ {

Callers 1

TestMergeNamed_SourceEOFFunction · 0.85

Calls 2

readerToStreamFunction · 0.85
newMultiStreamReaderFunction · 0.85

Tested by 1

TestMergeNamed_SourceEOFFunction · 0.68