mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-17 21:01:26 +02:00
tpl/strings: Improve type checking
This commit is contained in:
committed by
Bjørn Erik Pedersen
parent
2fedca6c8a
commit
7bf1abfc55
@@ -162,24 +162,32 @@ func (ns *Namespace) ContainsAny(s, chars any) (bool, error) {
|
||||
// ContainsNonSpace reports whether s contains any non-space characters as defined
|
||||
// by Unicode's White Space property,
|
||||
// <docsmeta>{"newIn": "0.111.0" }</docsmeta>
|
||||
func (ns *Namespace) ContainsNonSpace(s any) bool {
|
||||
ss := cast.ToString(s)
|
||||
func (ns *Namespace) ContainsNonSpace(s any) (bool, error) {
|
||||
ss, err := cast.ToStringE(s)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
for _, r := range ss {
|
||||
if !unicode.IsSpace(r) {
|
||||
return true
|
||||
return true, nil
|
||||
}
|
||||
}
|
||||
return false
|
||||
return false, nil
|
||||
}
|
||||
|
||||
// Diff returns an anchored diff of the two texts old and new in the “unified
|
||||
// diff” format. If old and new are identical, Diff returns an empty string.
|
||||
func (ns *Namespace) Diff(oldname string, old any, newname string, new any) string {
|
||||
oldb := []byte(cast.ToString(old))
|
||||
newb := []byte(cast.ToString(new))
|
||||
|
||||
return string(diff.Diff(oldname, oldb, newname, newb))
|
||||
func (ns *Namespace) Diff(oldname string, old any, newname string, new any) (string, error) {
|
||||
olds, err := cast.ToStringE(old)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
news, err := cast.ToStringE(new)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return string(diff.Diff(oldname, []byte(olds), newname, []byte(news))), nil
|
||||
}
|
||||
|
||||
// HasPrefix tests whether the input s begins with prefix.
|
||||
|
Reference in New Issue
Block a user