package txt import ( "strings" ) const ( Ellipsis = "…" ClipRole = 32 ClipKeyword = 40 ClipIP = 48 ClipUserName = 64 ClipSlug = 80 ClipCategory = 100 ClipTokenName = 128 ClipDefault = 160 ClipName = 160 ClipLongName = 200 ClipEmail = 255 ClipPath = 500 ClipURL = 512 ClipLog = 512 ClipFlags = 767 ClipShortText = 1024 ClipText = 2048 ClipLongText = 4096 ClipPassword = 4096 ) // Clip shortens a string to the given number of runes, and removes all leading and trailing white space. func Clip(s string, size int) string { s = strings.TrimSpace(s) if s == "" || size <= 0 { return "" } runes := []rune(s) if len(runes) > size { s = string(runes[0:size]) } return strings.TrimSpace(s) } // Shorten shortens a string with suffix. func Shorten(s string, size int, suffix string) string { if suffix == "" { suffix = Ellipsis } l := len(suffix) if len(s) < size || size < l+1 { return s } return Clip(s, size-l) + suffix }