Skip to content

Commit e40cea5

Browse files
committed
Make the API consistent
1 parent dd9dfea commit e40cea5

17 files changed

+357
-170
lines changed

benches/b2_sorted_set.zig

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ fn benchmarkAdd(allocator: std.mem.Allocator, size: usize) !void {
3232

3333
var i: i32 = 0;
3434
while (i < size) : (i += 1) {
35-
try set.add(i);
35+
_ = try set.put(i);
3636
}
3737

3838
const elapsed = timer.read() - start;
@@ -51,7 +51,7 @@ fn benchmarkContains(allocator: std.mem.Allocator, size: usize) !void {
5151

5252
var i: i32 = 0;
5353
while (i < size) : (i += 1) {
54-
try set.add(i);
54+
_ = try set.put(i);
5555
}
5656

5757
var timer = try Timer.start();
@@ -80,7 +80,7 @@ fn benchmarkRemove(allocator: std.mem.Allocator, size: usize) !void {
8080

8181
var i: i32 = 0;
8282
while (i < size) : (i += 1) {
83-
try set.add(i);
83+
_ = try set.put(i);
8484
}
8585

8686
var timer = try Timer.start();

benches/b3_red_black_tree.zig

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ fn benchmarkInsert(allocator: std.mem.Allocator, size: usize) !void {
3636

3737
var i: i32 = 0;
3838
while (i < size) : (i += 1) {
39-
try tree.insert(i);
39+
try tree.put(i);
4040
}
4141

4242
const elapsed = timer.read() - start;
@@ -55,7 +55,7 @@ fn benchmarkFind(allocator: std.mem.Allocator, size: usize) !void {
5555

5656
var i: i32 = 0;
5757
while (i < size) : (i += 1) {
58-
try tree.insert(i);
58+
try tree.put(i);
5959
}
6060

6161
var timer = try Timer.start();
@@ -64,7 +64,7 @@ fn benchmarkFind(allocator: std.mem.Allocator, size: usize) !void {
6464
i = 0;
6565
var found: usize = 0;
6666
while (i < size) : (i += 1) {
67-
if (tree.find(i) != null) found += 1;
67+
if (tree.get(i) != null) found += 1;
6868
}
6969

7070
const elapsed = timer.read() - start;
@@ -84,7 +84,7 @@ fn benchmarkRemove(allocator: std.mem.Allocator, size: usize) !void {
8484

8585
var i: i32 = 0;
8686
while (i < size) : (i += 1) {
87-
try tree.insert(i);
87+
try tree.put(i);
8888
}
8989

9090
var timer = try Timer.start();
@@ -111,7 +111,7 @@ fn benchmarkIterator(allocator: std.mem.Allocator, size: usize) !void {
111111

112112
var i: i32 = 0;
113113
while (i < size) : (i += 1) {
114-
try tree.insert(i);
114+
try tree.put(i);
115115
}
116116

117117
var timer = try Timer.start();

benches/b4_skip_list.zig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ fn benchmarkDelete(allocator: std.mem.Allocator, size: usize) !void {
8888

8989
i = 0;
9090
while (i < size) : (i += 1) {
91-
_ = list.delete(i);
91+
_ = list.remove(i);
9292
}
9393

9494
const elapsed = timer.read() - start;

benches/b5_trie.zig

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -144,14 +144,14 @@ fn benchmarkPrefixSearch(allocator: std.mem.Allocator, size: usize) !void {
144144

145145
i = 0;
146146
while (i < num_searches) : (i += 1) {
147-
var keys = try trie.keysWithPrefix(allocator, "key_");
148-
defer {
149-
for (keys.items) |key| {
150-
allocator.free(key);
151-
}
152-
keys.deinit(allocator);
147+
var iter = try trie.keysWithPrefix(allocator, "key_");
148+
defer iter.deinit();
149+
150+
var count: usize = 0;
151+
while (try iter.next()) |_| {
152+
count += 1;
153153
}
154-
total_found += keys.items.len;
154+
total_found += count;
155155
}
156156

157157
const elapsed = timer.read() - start;

benches/b6_cartesian_tree.zig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,11 +110,11 @@ fn benchmarkIterator(allocator: std.mem.Allocator, size: usize) !void {
110110
var timer = try Timer.start();
111111
const start = timer.lap();
112112

113-
var iter = tree.iterator(allocator);
113+
var iter = try tree.iterator(allocator);
114114
defer iter.deinit();
115115

116116
var count: usize = 0;
117-
while (iter.next()) |_| {
117+
while (try iter.next()) |_| {
118118
count += 1;
119119
}
120120

examples/e1_btree_map.zig

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ pub fn main() !void {
2222
std.debug.print("Found key '{s}': value is {d}\n", .{ key_to_find, value_ptr.* });
2323
}
2424

25-
_ = map.remove("banana");
26-
std.debug.print("Contains 'banana' after delete? {any}\n\n", .{map.get("banana") != null});
25+
const removed = map.remove("banana");
26+
std.debug.print("Removed 'banana' with value: {?d}\n", .{if (removed) |v| v else null});
27+
std.debug.print("Contains 'banana' after remove? {any}\n", .{map.contains("banana")});
28+
std.debug.print("Map count: {d}\n\n", .{map.count()});
2729
}

examples/e2_sorted_set.zig

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,13 @@ pub fn main() !void {
1212
var sorted_set = ordered.SortedSet(i32, i32Compare).init(allocator);
1313
defer sorted_set.deinit();
1414

15-
try sorted_set.add(100);
16-
try sorted_set.add(25);
17-
try sorted_set.add(50);
15+
_ = try sorted_set.put(100);
16+
_ = try sorted_set.put(25);
17+
_ = try sorted_set.put(50);
18+
const duplicate = try sorted_set.put(50); // Try adding duplicate
1819

19-
std.debug.print("SortedSet contents: {any}\n\n", .{sorted_set.items.items});
20+
std.debug.print("SortedSet count: {d}\n", .{sorted_set.count()});
21+
std.debug.print("Added duplicate 50? {any}\n", .{duplicate});
22+
std.debug.print("SortedSet contents: {any}\n", .{sorted_set.items.items});
23+
std.debug.print("Contains 100? {any}\n\n", .{sorted_set.contains(100)});
2024
}

examples/e3_red_black_tree.zig

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,22 @@ pub fn main() !void {
1616
var rbt = ordered.RedBlackTree(i32, I32Context).init(allocator, .{});
1717
defer rbt.deinit();
1818

19-
try rbt.insert(40);
20-
try rbt.insert(20);
21-
try rbt.insert(60);
22-
try rbt.insert(10);
23-
try rbt.insert(30);
19+
try rbt.put(40);
20+
try rbt.put(20);
21+
try rbt.put(60);
22+
try rbt.put(10);
23+
try rbt.put(30);
2424

25-
// Update is handled by insert
26-
try rbt.insert(30);
25+
// Update is handled by put
26+
try rbt.put(30);
2727

2828
std.debug.print("RBT count: {d}\n", .{rbt.count()});
2929
std.debug.print("RBT contains 20? {any}\n", .{rbt.contains(20)});
3030
std.debug.print("RBT contains 99? {any}\n", .{rbt.contains(99)});
3131

32-
if (rbt.remove(60)) {
33-
std.debug.print("Removed 60\n", .{});
32+
const removed = rbt.remove(60);
33+
if (removed) |val| {
34+
std.debug.print("Removed value: {d}\n", .{val});
3435
}
3536

3637
std.debug.print("RBT count after remove: {d}\n\n", .{rbt.count()});

examples/e4_skip_list.zig

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ pub fn main() !void {
1717
try skip_list.put("mango", 250);
1818
try skip_list.put("banana", 150);
1919

20-
std.debug.print("SkipList length: {d}\n", .{skip_list.len});
20+
std.debug.print("SkipList count: {d}\n", .{skip_list.count()});
2121

2222
if (skip_list.get("mango")) |value_ptr| {
2323
std.debug.print("Found 'mango': value is {d}\n", .{value_ptr.*});
@@ -29,6 +29,7 @@ pub fn main() !void {
2929
std.debug.print(" {s}: {d}\n", .{ entry.key, entry.value });
3030
}
3131

32-
_ = skip_list.delete("apple");
33-
std.debug.print("Contains 'apple' after delete? {any}\n\n", .{skip_list.contains("apple")});
32+
const removed = skip_list.remove("apple");
33+
std.debug.print("Removed 'apple' with value: {?d}\n", .{removed});
34+
std.debug.print("Contains 'apple' after remove? {any}\n\n", .{skip_list.contains("apple")});
3435
}

examples/e5_trie.zig

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)