convert Stream interface to a struct (#5149)

This commit is contained in:
Marten Seemann
2025-06-01 11:40:05 +08:00
committed by GitHub
parent 7ca7a973ef
commit eb656df2fe
25 changed files with 170 additions and 877 deletions

View File

@@ -19,7 +19,7 @@ const streamDatagramQueueLen = 32
// parent connection, this is done through the streamClearer interface when
// both the send and receive sides are closed
type stateTrackingStream struct {
quic.Stream
*quic.Stream
sendDatagram func([]byte) error
hasData chan struct{}
@@ -32,16 +32,13 @@ type stateTrackingStream struct {
clearer streamClearer
}
var (
_ datagramStream = &stateTrackingStream{}
_ quic.Stream = &stateTrackingStream{}
)
var _ datagramStream = &stateTrackingStream{}
type streamClearer interface {
clearStream(quic.StreamID)
}
func newStateTrackingStream(s quic.Stream, clearer streamClearer, sendDatagram func([]byte) error) *stateTrackingStream {
func newStateTrackingStream(s *quic.Stream, clearer streamClearer, sendDatagram func([]byte) error) *stateTrackingStream {
t := &stateTrackingStream{
Stream: s,
clearer: clearer,
@@ -170,3 +167,7 @@ start:
}
goto start
}
func (s *stateTrackingStream) QUICStream() *quic.Stream {
return s.Stream
}