1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
package recordio
import (
"io"
"strconv"
)
var lf = []byte{'\n'}
type Writer struct {
out io.Writer
}
func NewWriter(out io.Writer) *Writer {
return &Writer{out}
}
func (w *Writer) writeBuffer(b []byte, err error) error {
if err != nil {
return err
}
n, err := w.out.Write(b)
if err == nil && n != len(b) {
return io.ErrShortWrite
}
return err
}
func (w *Writer) WriteFrame(b []byte) (err error) {
err = w.writeBuffer(([]byte)(strconv.Itoa(len(b))), err)
err = w.writeBuffer(lf, err)
err = w.writeBuffer(b, err)
return
}
|