loading up the forgejo repo on tangled to test page performance
at forgejo 1.4 kB view raw
1// Copyright 2023 The Gitea Authors. All rights reserved. 2// SPDX-License-Identifier: MIT 3 4package templates 5 6import ( 7 "fmt" 8 "html/template" 9 "strings" 10 11 "forgejo.org/modules/base" 12) 13 14type StringUtils struct{} 15 16var stringUtils = StringUtils{} 17 18func NewStringUtils() *StringUtils { 19 return &stringUtils 20} 21 22func (su *StringUtils) Make(arr ...string) []string { 23 return arr 24} 25 26func (su *StringUtils) HasPrefix(s any, prefix string) bool { 27 switch v := s.(type) { 28 case string: 29 return strings.HasPrefix(v, prefix) 30 case template.HTML: 31 return strings.HasPrefix(string(v), prefix) 32 } 33 return false 34} 35 36func (su *StringUtils) ToString(v any) string { 37 switch v := v.(type) { 38 case string: 39 return v 40 case template.HTML: 41 return string(v) 42 case fmt.Stringer: 43 return v.String() 44 default: 45 return fmt.Sprint(v) 46 } 47} 48 49func (su *StringUtils) Contains(s, substr string) bool { 50 return strings.Contains(s, substr) 51} 52 53func (su *StringUtils) Split(s, sep string) []string { 54 return strings.Split(s, sep) 55} 56 57func (su *StringUtils) Join(a []string, sep string) string { 58 return strings.Join(a, sep) 59} 60 61func (su *StringUtils) Cut(s, sep string) []any { 62 before, after, found := strings.Cut(s, sep) 63 return []any{before, after, found} 64} 65 66func (su *StringUtils) EllipsisString(s string, max int) string { 67 return base.EllipsisString(s, max) 68} 69 70func (su *StringUtils) ToUpper(s string) string { 71 return strings.ToUpper(s) 72}