You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cointop/pkg/table/align/align.go

47 lines
828 B
Go

package align
import (
"fmt"
"strings"
"unicode/utf8"
"github.com/acarl005/stripansi"
)
// Left align left
func Left(t string, n int) string {
s := stripansi.Strip(t)
slen := utf8.RuneCountInString(s)
if slen > n {
return s[:n]
}
return fmt.Sprintf("%s%s", t, strings.Repeat(" ", n-slen))
}
// Right align right
func Right(t string, n int) string {
s := stripansi.Strip(t)
slen := utf8.RuneCountInString(s)
if slen > n {
return s[:n]
}
return fmt.Sprintf("%s%s", strings.Repeat(" ", n-slen), t)
}
// Center align center
func Center(t string, n int) string {
s := stripansi.Strip(t)
slen := utf8.RuneCountInString(s)
if slen > n {
return s[:n]
}
pad := (n - slen) / 2
lpad := pad
rpad := n - slen - lpad
return fmt.Sprintf("%s%s%s", strings.Repeat(" ", lpad), t, strings.Repeat(" ", rpad))
}