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

Function StreamCollect

pkg/agent/streaming.go:175–190  ·  view source on GitHub ↗

StreamCollect 辅助函数 - 收集所有事件 用于向后兼容,将流式接口转换为批量结果 使用示例: events, err := StreamCollect(agent.Stream(ctx, "Hello")) if err != nil { return err } for _, event := range events { fmt.Println(event) }

(reader *stream.Reader[*session.Event])

Source from the content-addressed store, hash-verified

173// fmt.Println(event)
174// }
175func StreamCollect(reader *stream.Reader[*session.Event]) ([]*session.Event, error) {
176 var events []*session.Event
177 for {
178 event, err := reader.Recv()
179 if err != nil {
180 if errors.Is(err, io.EOF) {
181 break
182 }
183 return events, err
184 }
185 if event != nil {
186 events = append(events, event)
187 }
188 }
189 return events, nil
190}
191
192// StreamFirst 辅助函数 - 获取第一个事件
193func StreamFirst(reader *stream.Reader[*session.Event]) (*session.Event, error) {

Callers 1

collectExampleFunction · 0.92

Calls 1

RecvMethod · 0.80

Tested by

no test coverage detected