gitea源码

util_string.go 1.3KB

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