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 }