func (w Writer) Put(record []byte) error {
	_, err := w.WriteRecord(record)
	return err
}
Put writes the specified record to the writer.  It equivalent to
WriteRecord, but discards the number of bytes written.
package delimited
import (
	"bufio"
	"encoding/binary"
	"fmt"
	"io"
	"github.com/golang/protobuf/proto"
)
type Reader struct {
	buf  *bufio.Reader
	data []byte
}
func (r *Reader) Next() ([]byte, error) {
	size, err := binary.ReadUvarint(r.buf)
	if err != nil {
		return nil, err
	}
	if cap(r.data) < int(size) {
		r.data = make([]byte, size)
	} else {
		r.data = r.data[:size]
	}
	if _, err := io.ReadFull(r.buf, r.data); err != nil {
		return nil, err
	}
	return r.data, nil
}
func (r *Reader) NextProto(pb proto.Message) error {
	rec, err := r.Next()
	if err != nil {
		return err
	}
	return proto.Unmarshal(rec, pb)
}
func NewReader(r io.Reader) *Reader { return &Reader{buf: bufio.NewReader(r)} }
type Writer struct {
	w io.Writer
}