code: func (cw *chunkedWriter) Write(data []byte) (n int, err error) {
  
  	// Don't send 0-length data. It looks like EOF for chunked encoding.
  	if len(data) == 0 {
  		return 0, nil
  	}
  
  	head := strconv.FormatInt(int64(len(data)), 16) + "\r\n"
  
  	if _, err = io.WriteString(cw.Wire, head); err != nil {
  		return 0, err
  	}
  	if n, err = cw.Wire.Write(data); err != nil {
  		return
  	}
  	if n != len(data) {
  		err = io.ErrShortWrite
  		return
  	}
  	_, err = io.WriteString(cw.Wire, "\r\n")
  
  	return
  }
docs: // Write the contents of data as one chunk to Wire.
  // NOTE: Note that the corresponding chunk-writing procedure in Conn.Write has
  // a bug since it does not check for success of io.WriteString