code: func (c *Client) format(name string, value interface{}, suffix []byte, tags []string, rate float64) []byte {
  	// preallocated buffer, stack allocated as long as it doesn't escape
  	buf := make([]byte, 0, 200)
  
  	if c.Namespace != "" {
  		buf = append(buf, c.Namespace...)
  	}
  	buf = append(buf, name...)
  	buf = append(buf, ':')
  
  	switch val := value.(type) {
  	case float64:
  		buf = strconv.AppendFloat(buf, val, 'f', 6, 64)
  
  	case int64:
  		buf = strconv.AppendInt(buf, val, 10)
  
  	case string:
  		buf = append(buf, val...)
  
  	default:
  		// do nothing
  	}
  	buf = append(buf, suffix...)
  
  	if rate < 1 {
  		buf = append(buf, "|@"...)
  		buf = strconv.AppendFloat(buf, rate, 'f', -1, 64)
  	}
  
  	buf = appendTagString(buf, c.Tags, tags)
  
  	// non-zeroing copy to avoid referencing a larger than necessary underlying array
  	return append([]byte(nil), buf...)
  }
docs: // format a message from its name, value, tags and rate.  Also adds global
  // namespace and tags.