Skip to content

Commit 202ab3a

Browse files
committed
Add helper functions
1 parent 7f31702 commit 202ab3a

File tree

1 file changed

+42
-5
lines changed

1 file changed

+42
-5
lines changed

yaml.go

+42-5
Original file line numberDiff line numberDiff line change
@@ -469,22 +469,59 @@ const atSymbolEscapeSeq = "🌝🌝🌝🌝🌝"
469469

470470
var atSymbolEscapeSeqBytes = []byte(atSymbolEscapeSeq)
471471

472-
func ExtractAtSymbolText(input interface{}) (string, bool) {
472+
func StartsWithEscapedAtSymbol(str string) bool {
473+
return strings.HasPrefix(str, atSymbolEscapeSeq)
474+
}
475+
476+
func HasEscapedAtSymbol(str string) bool {
477+
return strings.Contains(str, atSymbolEscapeSeq)
478+
}
479+
480+
func ExtractAtSymbolText(str string) (string, bool) {
481+
if strings.HasPrefix(str, atSymbolEscapeSeq) {
482+
return str[len(atSymbolEscapeSeq):], true
483+
}
484+
return "", false
485+
}
486+
487+
func ExtractAtSymbolTextInter(input interface{}) (string, bool) {
473488
if str, ok := input.(string); ok {
474-
if strings.HasPrefix(str, atSymbolEscapeSeq) {
475-
return str[len(atSymbolEscapeSeq):], true
476-
}
489+
return ExtractAtSymbolText(str)
490+
}
491+
if strPtr, ok := input.(*string); ok {
492+
return ExtractAtSymbolText(*strPtr)
477493
}
478494
return "", false
479495
}
480496

481-
func EscapeAtSymbol(str string) (string, bool) {
497+
func EscapeAtSymbol(str string) string {
498+
if strings.HasPrefix(str, "@") {
499+
return atSymbolEscapeSeq + str[1:]
500+
}
501+
return str
502+
}
503+
504+
func EscapeAtSymbolOk(str string) (string, bool) {
482505
if strings.HasPrefix(str, "@") {
483506
return atSymbolEscapeSeq + str[1:], true
484507
}
485508
return str, false
486509
}
487510

511+
func EscapeAllAtSymbols(str string) string {
512+
if strings.Contains(str, "@") {
513+
return strings.ReplaceAll(str, "@", atSymbolEscapeSeq)
514+
}
515+
return str
516+
}
517+
518+
func EscapeAllAtSymbolsOk(str string) (string, bool) {
519+
if strings.Contains(str, "@") {
520+
return strings.ReplaceAll(str, "@", atSymbolEscapeSeq), true
521+
}
522+
return str, false
523+
}
524+
488525
func UnescapeAtSymbol(str string) string {
489526
if strings.HasPrefix(str, atSymbolEscapeSeq) {
490527
return "@" + str[len(atSymbolEscapeSeq):]

0 commit comments

Comments
 (0)