@@ -14,7 +14,7 @@ pub fn main() !void {
1414 try trie .put ("care" , "to look after" );
1515 try trie .put ("careful" , "cautious" );
1616
17- std .debug .print ("Trie length : {d}\n " , .{trie .len });
17+ std .debug .print ("Trie count : {d}\n " , .{trie .count () });
1818
1919 if (trie .get ("car" )) | value_ptr | {
2020 std .debug .print ("Found 'car': {s}\n " , .{value_ptr .* });
@@ -23,21 +23,19 @@ pub fn main() !void {
2323 std .debug .print ("Has prefix 'car'? {any}\n " , .{trie .hasPrefix ("car" )});
2424 std .debug .print ("Contains 'ca'? {any}\n " , .{trie .contains ("ca" )});
2525
26- var keys = try trie .keysWithPrefix (allocator , "car" );
27- defer {
28- for (keys .items ) | key | {
29- allocator .free (key );
30- }
31- keys .deinit (allocator );
32- }
33-
3426 std .debug .print ("Keys with prefix 'car': " , .{});
35- for (keys .items , 0.. ) | key , i | {
36- if (i > 0 ) std .debug .print (", " , .{});
27+ var prefix_iter = try trie .keysWithPrefix (allocator , "car" );
28+ defer prefix_iter .deinit ();
29+
30+ var first = true ;
31+ while (try prefix_iter .next ()) | key | {
32+ if (! first ) std .debug .print (", " , .{});
3733 std .debug .print ("'{s}'" , .{key });
34+ first = false ;
3835 }
3936 std .debug .print ("\n " , .{});
4037
41- _ = trie .delete ("card" );
42- std .debug .print ("Contains 'card' after delete? {any}\n " , .{trie .contains ("card" )});
38+ const removed = trie .remove ("card" );
39+ std .debug .print ("Removed 'card' with value: {?s}\n " , .{removed });
40+ std .debug .print ("Contains 'card' after remove? {any}\n\n " , .{trie .contains ("card" )});
4341}
0 commit comments