code: func (enc *Encoder) Flush() error {
  	if enc.err == nil && enc.out != nil {
  		enc.out.Write(enc.buf.Bytes())
  		enc.buf.Reset()
  	}
  	return enc.err
  }
docs: //
  // EncodeType - define the type of the data if it isn't already defined, and then
  // emit the tag for it
  //func (enc *Encoder) EncodeType(data interface{}, signature []byte) error {
  //	v := reflect.ValueOf(data)
  //	return enc.encodeReflectedStruct(v, false)
  //}
  //
  // Flush - flush output, and reset buffer to encode again
  //