File tree Expand file tree Collapse file tree 2 files changed +55
-0
lines changed Expand file tree Collapse file tree 2 files changed +55
-0
lines changed Original file line number Diff line number Diff line change @@ -280,3 +280,24 @@ test "toCapitalized Tests" {
280
280
281
281
try expectEqualStrings (myString .str (), "Love And Be Loved" );
282
282
}
283
+
284
+ test "includes Tests" {
285
+ var myString = try String .init_with_contents (std .testing .allocator , "love and be loved" );
286
+ defer myString .deinit ();
287
+
288
+ var needle = try String .init_with_contents (std .testing .allocator , "be" );
289
+ defer needle .deinit ();
290
+
291
+ try expect (myString .includesLiteral ("and" ));
292
+ try expect (myString .includesString (needle ));
293
+
294
+ try needle .concat ("t" );
295
+
296
+ try expect (myString .includesLiteral ("tiger" ) == false );
297
+ try expect (myString .includesString (needle ) == false );
298
+
299
+ needle .clear ();
300
+
301
+ try expect (myString .includesLiteral ("" ) == false );
302
+ try expect (myString .includesString (needle ) == false );
303
+ }
Original file line number Diff line number Diff line change @@ -606,4 +606,38 @@ pub const String = struct {
606
606
}
607
607
return false ;
608
608
}
609
+
610
+ /// Checks if the needle String is within the source String
611
+ pub fn includesString (self : * String , needle : String ) bool {
612
+
613
+ if (self .size == 0 or needle .size == 0 ) return false ;
614
+
615
+ if (self .buffer ) | buffer | {
616
+ if (needle .buffer ) | needle_buffer | {
617
+ const found_index = std .mem .indexOf (u8 , buffer [0.. self .size ], needle_buffer [0.. needle .size ]);
618
+
619
+ if (found_index == null ) return false ;
620
+
621
+ return true ;
622
+ }
623
+ }
624
+
625
+ return false ;
626
+ }
627
+
628
+ /// Checks if the needle literal is within the source String
629
+ pub fn includesLiteral (self : * String , needle : []const u8 ) bool {
630
+
631
+ if (self .size == 0 or needle .len == 0 ) return false ;
632
+
633
+ if (self .buffer ) | buffer | {
634
+ const found_index = std .mem .indexOf (u8 , buffer [0.. self .size ], needle );
635
+
636
+ if (found_index == null ) return false ;
637
+
638
+ return true ;
639
+ }
640
+
641
+ return false ;
642
+ }
609
643
};
You can’t perform that action at this time.
0 commit comments