@@ -469,22 +469,59 @@ const atSymbolEscapeSeq = "🌝🌝🌝🌝🌝"
469469
470470var 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+
488525func UnescapeAtSymbol (str string ) string {
489526 if strings .HasPrefix (str , atSymbolEscapeSeq ) {
490527 return "@" + str [len (atSymbolEscapeSeq ):]
0 commit comments