code.gitea.io/gitea@v1.22.3/modules/templates/util_string.go (about) 1 // Copyright 2023 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package templates 5 6 import ( 7 "fmt" 8 "html/template" 9 "strings" 10 11 "code.gitea.io/gitea/modules/base" 12 ) 13 14 type StringUtils struct{} 15 16 var stringUtils = StringUtils{} 17 18 func NewStringUtils() *StringUtils { 19 return &stringUtils 20 } 21 22 func (su *StringUtils) ToString(v any) string { 23 switch v := v.(type) { 24 case string: 25 return v 26 case template.HTML: 27 return string(v) 28 case fmt.Stringer: 29 return v.String() 30 default: 31 return fmt.Sprint(v) 32 } 33 } 34 35 func (su *StringUtils) HasPrefix(s, prefix string) bool { 36 return strings.HasPrefix(s, prefix) 37 } 38 39 func (su *StringUtils) Contains(s, substr string) bool { 40 return strings.Contains(s, substr) 41 } 42 43 func (su *StringUtils) Split(s, sep string) []string { 44 return strings.Split(s, sep) 45 } 46 47 func (su *StringUtils) Join(a []string, sep string) string { 48 return strings.Join(a, sep) 49 } 50 51 func (su *StringUtils) Cut(s, sep string) []any { 52 before, after, found := strings.Cut(s, sep) 53 return []any{before, after, found} 54 } 55 56 func (su *StringUtils) EllipsisString(s string, max int) string { 57 return base.EllipsisString(s, max) 58 } 59 60 func (su *StringUtils) ToUpper(s string) string { 61 return strings.ToUpper(s) 62 }