copy langext & termext from ffsclient
This commit is contained in:
@@ -61,3 +61,49 @@ func ConvertStringerArray[T fmt.Stringer](inarr []T) []string {
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
func StrRunePadLeft(str string, pad string, padlen int) string {
|
||||
if pad == "" {
|
||||
pad = " "
|
||||
}
|
||||
|
||||
if len([]rune(str)) >= padlen {
|
||||
return str
|
||||
}
|
||||
|
||||
return strings.Repeat(pad, padlen-len([]rune(str)))[0:(padlen-len([]rune(str)))] + str
|
||||
}
|
||||
|
||||
func StrRunePadRight(str string, pad string, padlen int) string {
|
||||
if pad == "" {
|
||||
pad = " "
|
||||
}
|
||||
|
||||
if len([]rune(str)) >= padlen {
|
||||
return str
|
||||
}
|
||||
|
||||
return str + strings.Repeat(pad, padlen-len([]rune(str)))[0:(padlen-len([]rune(str)))]
|
||||
}
|
||||
|
||||
func Indent(str string, pad string) string {
|
||||
eonl := strings.HasSuffix(str, "\n")
|
||||
r := ""
|
||||
for _, v := range strings.Split(str, "\n") {
|
||||
r += pad + v + "\n"
|
||||
}
|
||||
|
||||
if eonl {
|
||||
r = r[0 : len(r)-1]
|
||||
}
|
||||
|
||||
return r
|
||||
}
|
||||
|
||||
func NumToStringOpt[V IntConstraint](v *V, fallback string) string {
|
||||
if v == nil {
|
||||
return fallback
|
||||
} else {
|
||||
return fmt.Sprintf("%d", v)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user