code: func SubstituteRune(s string, sub map[rune]string) string {
  	var buf bytes.Buffer
  	for _, c := range s {
  		if d, ok := sub[c]; ok {
  			buf.WriteString(d)
  		} else {
  			buf.WriteRune(c)
  		}
  	}
  	return buf.String()
  }
docs: // SubstituteRune substitutes string chars with provided rune
  // substitution map. One pass.