type WriteSeeker … func (sws *WriteSeeker) Write(p []byte) (n int, err error) { … } // Seek repositions the read/write position of the WriteSeeker within // its internally maintained slice. Note that it is not possible to // expand the size of the slice using SEEK_SET; trying to seek outside // the slice will result in an error. func (sws *WriteSeeker) Seek(offset int64, whence int) (int64, error) { … } // BytesWritten returns the underlying byte slice for the WriteSeeker, // containing the data written to it via Write/Seek calls. func (sws *WriteSeeker) BytesWritten() []byte { … } func (sws *WriteSeeker) Read(p []byte) (n int, err error) { … }