func (c split) Send(msg []byte) error {
	if bytes.ContainsAny(msg, string(c.split)) {
		return errors.New("message contains split byte")
	}
	out := make([]byte, len(msg)+1)
	copy(out, msg)
	out[len(msg)] = c.split
	_, err := c.wc.Write(out)
	return err
}
Send implements part of the Channel interface.  It reports an error if msg
contains a split byte.
package channel
import (
	"bufio"
	"bytes"
	"errors"
	"io"
)
var Line = Split('\n')
func Split(b byte) Framing {
	return func(r io.Reader, wc io.WriteCloser) Channel {
		return split{split: b, wc: wc, buf: bufio.NewReader(r)}
	}
}
type split struct {
	split byte
	wc    io.WriteCloser
	buf   *bufio.Reader
}