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()
}
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()
}
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 ( ) }
// SubstituteRune substitutes string chars with provided rune
// substitution map. One pass.
SubstituteRune substitutes string chars with provided rune substitution map . One pass .