func (bf *Buffer) WriteHeader(i int) {
	bf.changed = true
	bf.Code = i
}
WriteHeader writes the cached status code and tracks this call as change
package wrap
import (
	"bytes"
	"net/http"
)
type Buffer struct {
	http.ResponseWriter
	Buffer bytes.Buffer
	Code int
	changed bool
	header http.Header
}
var _ Contexter = &Buffer{}
func NewBuffer(w http.ResponseWriter) (bf *Buffer) {
	bf = &Buffer{}
	bf.ResponseWriter = w
	bf.header = make(http.Header)
	return
}
func (bf *Buffer) Context(ctxPtr interface{}) bool {
	return bf.ResponseWriter.(Contexter).Context(ctxPtr)
}
func (bf *Buffer) SetContext(ctxPtr interface{}) {
	bf.ResponseWriter.(Contexter).SetContext(ctxPtr)
}
func (bf *Buffer) Header() http.Header {
	bf.changed = true
	return bf.header
}