mirror of https://github.com/miguelmota/cointop
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.
47 lines
828 B
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))
|
|
}
|