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

Function readerToStream

pkg/stream/stream.go:540–563  ·  view source on GitHub ↗
(r *Reader[T])

Source from the content-addressed store, hash-verified

538}
539
540func readerToStream[T any](r *Reader[T]) *stream[T] {
541 switch r.typ {
542 case readerTypeStream:
543 return r.st
544 case readerTypeArray:
545 return r.ar.toStream()
546 default:
547 // 通过读取和发送转换其他类型
548 s := newStream[T](5)
549 go func() {
550 defer s.closeSend()
551 for {
552 v, err := r.Recv()
553 if errors.Is(err, io.EOF) {
554 return
555 }
556 if s.send(v, err) {
557 return
558 }
559 }
560 }()
561 return s
562 }
563}
564
565// Transform 将类型 T 的流转换为类型 U
566// 返回 ErrSkip 可跳过某个值

Callers 2

MergeFunction · 0.85
MergeNamedFunction · 0.85

Calls 4

toStreamMethod · 0.80
closeSendMethod · 0.80
RecvMethod · 0.80
sendMethod · 0.45

Tested by

no test coverage detected