Spaces:
Sleeping
Sleeping
| package utils | |
| // Truncate returns a truncated version of s with at most maxLen runes. | |
| // Handles multi-byte Unicode characters properly. | |
| // If the string is truncated, "..." is appended to indicate truncation. | |
| func Truncate(s string, maxLen int) string { | |
| runes := []rune(s) | |
| if len(runes) <= maxLen { | |
| return s | |
| } | |
| // Reserve 3 chars for "..." | |
| if maxLen <= 3 { | |
| return string(runes[:maxLen]) | |
| } | |
| return string(runes[:maxLen-3]) + "..." | |
| } | |