@@ -558,3 +558,59 @@ func SliceRemoveCallback(length int, callback func(int) func(bool) error) error
558
558
}
559
559
return nil
560
560
}
561
+
562
+ func SplitKVRows (rows string , seperator ... string ) map [string ]string {
563
+ sep := `=`
564
+ if len (seperator ) > 0 {
565
+ sep = seperator [0 ]
566
+ }
567
+ res := map [string ]string {}
568
+ for _ , row := range strings .Split (rows , StrLF ) {
569
+ parts := strings .SplitN (row , sep , 2 )
570
+ if len (parts ) != 2 {
571
+ continue
572
+ }
573
+ parts [0 ] = strings .TrimSpace (parts [0 ])
574
+ if len (parts [0 ]) == 0 {
575
+ continue
576
+ }
577
+ parts [1 ] = strings .TrimSpace (parts [1 ])
578
+ res [parts [0 ]] = parts [1 ]
579
+ }
580
+ return res
581
+ }
582
+
583
+ func SplitKVRowsCallback (rows string , callback func (k , v string ) error , seperator ... string ) (err error ) {
584
+ sep := `=`
585
+ if len (seperator ) > 0 {
586
+ sep = seperator [0 ]
587
+ }
588
+ for _ , row := range strings .Split (rows , StrLF ) {
589
+ parts := strings .SplitN (row , sep , 2 )
590
+ if len (parts ) != 2 {
591
+ continue
592
+ }
593
+ parts [0 ] = strings .TrimSpace (parts [0 ])
594
+ if len (parts [0 ]) == 0 {
595
+ continue
596
+ }
597
+ parts [1 ] = strings .TrimSpace (parts [1 ])
598
+ err = callback (parts [0 ], parts [1 ])
599
+ if err != nil {
600
+ return
601
+ }
602
+ }
603
+ return
604
+ }
605
+
606
+ func TrimSpaceForRows (rows string ) []string {
607
+ res := []string {}
608
+ for _ , row := range strings .Split (rows , StrLF ) {
609
+ row = strings .TrimSpace (row )
610
+ if len (row ) == 0 {
611
+ continue
612
+ }
613
+ res = append (res , row )
614
+ }
615
+ return res
616
+ }
0 commit comments