tpl: Add strings.TrimLeft and TrimRight

This commit is contained in:
Cameron Moore
2017-08-18 02:12:04 -05:00
committed by Bjørn Erik Pedersen
parent 08f48b91d6
commit 7674ad7382
3 changed files with 116 additions and 0 deletions

View File

@@ -347,6 +347,22 @@ func (ns *Namespace) Trim(s, cutset interface{}) (string, error) {
return _strings.Trim(ss, sc), nil
}
// TrimLeft returns a slice of the string s with all leading characters
// contained in cutset removed.
func (ns *Namespace) TrimLeft(cutset, s interface{}) (string, error) {
ss, err := cast.ToStringE(s)
if err != nil {
return "", err
}
sc, err := cast.ToStringE(cutset)
if err != nil {
return "", err
}
return _strings.TrimLeft(ss, sc), nil
}
// TrimPrefix returns s without the provided leading prefix string. If s doesn't
// start with prefix, s is returned unchanged.
func (ns *Namespace) TrimPrefix(s, prefix interface{}) (string, error) {
@@ -363,6 +379,22 @@ func (ns *Namespace) TrimPrefix(s, prefix interface{}) (string, error) {
return _strings.TrimPrefix(ss, sx), nil
}
// TrimRight returns a slice of the string s with all trailing characters
// contained in cutset removed.
func (ns *Namespace) TrimRight(cutset, s interface{}) (string, error) {
ss, err := cast.ToStringE(s)
if err != nil {
return "", err
}
sc, err := cast.ToStringE(cutset)
if err != nil {
return "", err
}
return _strings.TrimRight(ss, sc), nil
}
// TrimSuffix returns s without the provided trailing suffix string. If s
// doesn't end with suffix, s is returned unchanged.
func (ns *Namespace) TrimSuffix(s, suffix interface{}) (string, error) {