code: func (t *Template) ExecuteFunc(w io.Writer, f TagFunc) (int64, error) {
  	var nn int64
  
  	n := len(t.texts) - 1
  	if n == -1 {
  		ni, err := w.Write(unsafeString2Bytes(t.template))
  		return int64(ni), err
  	}
  
  	for i := 0; i < n; i++ {
  		ni, err := w.Write(t.texts[i])
  		nn += int64(ni)
  		if err != nil {
  			return nn, err
  		}
  
  		ni, err = f(w, t.tags[i])
  		nn += int64(ni)
  		if err != nil {
  			return nn, err
  		}
  	}
  	ni, err := w.Write(t.texts[n])
  	nn += int64(ni)
  	return nn, err
  }
docs: // ExecuteFunc calls f on each template tag (placeholder) occurrence.
  //
  // Returns the number of bytes written to w.
  //
  // This function is optimized for frozen templates.
  // Use ExecuteFunc for constantly changing templates.