github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/builtins/pipes/streams/readcloser.go (about)

     1  package streams
     2  
     3  import (
     4  	"context"
     5  	"io"
     6  )
     7  
     8  // ReadCloser is a wrapper around an io.ReadCloser interface
     9  type ReadCloser struct {
    10  	Reader
    11  }
    12  
    13  // NewReadCloser creates a new Stdio.Io interface wrapper around a io.ReadCloser interface
    14  func NewReadCloser(reader io.ReadCloser) (r *ReadCloser) {
    15  	if reader == nil {
    16  		panic("streams.ReadCloser interface has nil reader interface")
    17  	}
    18  
    19  	r = new(ReadCloser)
    20  	r.reader = reader
    21  	r.readCloser = reader
    22  	r.ctx, r.forceClose = context.WithCancel(context.Background())
    23  	return
    24  }