package shell import "io" // RecordingChannel wraps an io.ReadWriteCloser. In Phase 1.4 it is a // pass-through; Phase 2.3 will add byte-level keystroke recording here // without changing any shell code. type RecordingChannel struct { inner io.ReadWriteCloser } // NewRecordingChannel returns a RecordingChannel wrapping rw. func NewRecordingChannel(rw io.ReadWriteCloser) *RecordingChannel { return &RecordingChannel{inner: rw} } func (r *RecordingChannel) Read(p []byte) (int, error) { return r.inner.Read(p) } func (r *RecordingChannel) Write(p []byte) (int, error) { return r.inner.Write(p) } func (r *RecordingChannel) Close() error { return r.inner.Close() }