@@ -469,22 +469,59 @@ const atSymbolEscapeSeq = "🌝🌝🌝🌝🌝"
469
469
470
470
var atSymbolEscapeSeqBytes = []byte (atSymbolEscapeSeq )
471
471
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 ) {
473
488
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 )
477
493
}
478
494
return "" , false
479
495
}
480
496
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 ) {
482
505
if strings .HasPrefix (str , "@" ) {
483
506
return atSymbolEscapeSeq + str [1 :], true
484
507
}
485
508
return str , false
486
509
}
487
510
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
+
488
525
func UnescapeAtSymbol (str string ) string {
489
526
if strings .HasPrefix (str , atSymbolEscapeSeq ) {
490
527
return "@" + str [len (atSymbolEscapeSeq ):]
0 commit comments