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

Function Merge

pkg/stream/stream.go:500–517  ·  view source on GitHub ↗

Merge 将多个读取器合并为一个 从任何有数据的读取器接收值

(readers ...*Reader[T])

Source from the content-addressed store, hash-verified

498// Merge 将多个读取器合并为一个
499// 从任何有数据的读取器接收值
500func Merge[T any](readers ...*Reader[T]) *Reader[T] {
501 if len(readers) == 0 {
502 return nil
503 }
504 if len(readers) == 1 {
505 return readers[0]
506 }
507
508 streams := make([]*stream[T], len(readers))
509 for i, r := range readers {
510 streams[i] = readerToStream(r)
511 }
512
513 return &Reader[T]{
514 typ: readerTypeMulti,
515 msr: newMultiStreamReader(streams, nil),
516 }
517}
518
519// MergeNamed 将多个命名读取器合并为一个
520// 当源流结束时,返回带有流名称的 SourceEOF

Callers 1

TestMerge_BasicFunction · 0.85

Calls 2

readerToStreamFunction · 0.85
newMultiStreamReaderFunction · 0.85

Tested by 1

TestMerge_BasicFunction · 0.68