func newWriterSink(w io.Writer) Sink {
	return &writerSink{out: w}
}
newWriterSink creates a binary log sink with the given writer.

Write() marshals the proto message and writes it to the given writer. Each
message is prefixed with a 4 byte big endian unsigned integer as the length.

No buffer is done, Close() doesn't try to close the writer.
package binarylog
import (
	"bufio"
	"encoding/binary"
	"io"
	"sync"
	"time"
	"github.com/golang/protobuf/proto"
	pb "google.golang.org/grpc/binarylog/grpc_binarylog_v1"
)
var (
	DefaultSink Sink = &noopSink{}  
)
type Sink interface {
	Write(*pb.GrpcLogEntry) error
	Close() error
}
type noopSink struct{}
func (ns *noopSink) Write(*pb.GrpcLogEntry) error { return nil }
func (ns *noopSink) Close() error                 { return nil }