Skip to content

Commit 8337442

Browse files
committed
feat(treeview): add defaultTreeview helper
Signed-off-by: grapebaba <[email protected]>
1 parent 47ad6e7 commit 8337442

File tree

11 files changed

+71
-76
lines changed

11 files changed

+71
-76
lines changed

src/ssz/type/bit_list.zig

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -587,6 +587,11 @@ pub fn BitListType(comptime _limit: comptime_int) type {
587587
}
588588
try deserializeFromBytes(allocator, bytes, out);
589589
}
590+
591+
pub fn defaultTreeView(allocator: std.mem.Allocator, pool: *Node.Pool) !TreeView {
592+
const root = try tree.fromValue(allocator, pool, &default_value);
593+
return try TreeView.init(allocator, pool, root);
594+
}
590595
};
591596
}
592597

src/ssz/type/bit_vector.zig

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,11 @@ pub fn BitVectorType(comptime _length: comptime_int) type {
316316
return error.trailingData;
317317
}
318318
}
319+
320+
pub fn defaultTreeView(allocator: std.mem.Allocator, pool: *Node.Pool) !TreeView {
321+
const root = try tree.fromValue(pool, &default_value);
322+
return try TreeView.init(allocator, pool, root);
323+
}
319324
};
320325
}
321326

src/ssz/type/byte_list.zig

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,11 @@ pub fn ByteListType(comptime _limit: comptime_int) type {
261261
try out.resize(allocator, hex_bytes_len);
262262
_ = try hexToBytes(out.items, hex_bytes);
263263
}
264+
265+
pub fn defaultTreeView(allocator: std.mem.Allocator, pool: *Node.Pool) !TreeView {
266+
const root = try tree.fromValue(allocator, pool, &default_value);
267+
return try TreeView.init(allocator, pool, root);
268+
}
264269
};
265270
}
266271
test "clone" {

src/ssz/type/byte_vector.zig

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,11 @@ pub fn ByteVectorType(comptime _length: comptime_int) type {
168168
}
169169
_ = try hexToBytes(out, hex_bytes);
170170
}
171+
172+
pub fn defaultTreeView(allocator: std.mem.Allocator, pool: *Node.Pool) !TreeView {
173+
const root = try tree.fromValue(pool, &default_value);
174+
return try TreeView.init(allocator, pool, root);
175+
}
171176
};
172177
}
173178

src/ssz/type/container.zig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,11 @@ pub fn FixedContainerType(comptime ST: type) type {
252252
const field_index = getFieldIndex(name);
253253
return comptime Gindex.fromDepth(chunk_depth, field_index);
254254
}
255+
256+
pub fn defaultTreeView(allocator: std.mem.Allocator, pool: *Node.Pool) !TreeView {
257+
const root = try tree.fromValue(pool, &default_value);
258+
return try TreeView.init(allocator, pool, root);
259+
}
255260
};
256261
}
257262

@@ -681,6 +686,11 @@ pub fn VariableContainerType(comptime ST: type) type {
681686
else => return error.InvalidJson,
682687
}
683688
}
689+
690+
pub fn defaultTreeView(allocator: std.mem.Allocator, pool: *Node.Pool) !TreeView {
691+
const root = try tree.fromValue(allocator, pool, &default_value);
692+
return try TreeView.init(allocator, pool, root);
693+
}
684694
};
685695
}
686696

src/ssz/type/list.zig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,11 @@ pub fn FixedListType(comptime ST: type, comptime _limit: comptime_int) type {
395395
}
396396
}
397397
};
398+
399+
pub fn defaultTreeView(allocator: std.mem.Allocator, pool: *Node.Pool) !TreeView {
400+
const root = try tree.fromValue(allocator, pool, &default_value);
401+
return try TreeView.init(allocator, pool, root);
402+
}
398403
};
399404
}
400405

@@ -728,6 +733,11 @@ pub fn VariableListType(comptime ST: type, comptime _limit: comptime_int) type {
728733
}
729734
return error.invalidLength;
730735
}
736+
737+
pub fn defaultTreeView(allocator: std.mem.Allocator, pool: *Node.Pool) !TreeView {
738+
const root = try tree.fromValue(allocator, pool, &default_value);
739+
return try TreeView.init(allocator, pool, root);
740+
}
731741
};
732742
}
733743

src/ssz/type/vector.zig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,11 @@ pub fn FixedVectorType(comptime ST: type, comptime _length: comptime_int) type {
237237
else => return error.InvalidJson,
238238
}
239239
}
240+
241+
pub fn defaultTreeView(allocator: std.mem.Allocator, pool: *Node.Pool) !TreeView {
242+
const root = try tree.fromValue(pool, &default_value);
243+
return try TreeView.init(allocator, pool, root);
244+
}
240245
};
241246
}
242247

@@ -447,6 +452,11 @@ pub fn VariableVectorType(comptime ST: type, comptime _length: comptime_int) typ
447452
else => return error.InvalidJson,
448453
}
449454
}
455+
456+
pub fn defaultTreeView(allocator: std.mem.Allocator, pool: *Node.Pool) !TreeView {
457+
const root = try tree.fromValue(allocator, pool, &default_value);
458+
return try TreeView.init(allocator, pool, root);
459+
}
450460
};
451461
}
452462

test/int/ssz/tree_view/bit_vector.zig

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,7 @@ test "BitVectorTreeView clone isolates updates" {
9797
var pool = try Node.Pool.init(allocator, 2048);
9898
defer pool.deinit();
9999

100-
const root = try Bits.tree.fromValue(&pool, &Bits.default_value);
101-
var v1 = try Bits.TreeView.init(allocator, &pool, root);
100+
var v1 = try Bits.defaultTreeView(allocator, &pool);
102101
defer v1.deinit();
103102

104103
var v2 = try v1.clone(.{});
@@ -118,8 +117,7 @@ test "BitVectorTreeView clone reads committed state" {
118117
var pool = try Node.Pool.init(allocator, 2048);
119118
defer pool.deinit();
120119

121-
const root = try Bits.tree.fromValue(&pool, &Bits.default_value);
122-
var v1 = try Bits.TreeView.init(allocator, &pool, root);
120+
var v1 = try Bits.defaultTreeView(allocator, &pool);
123121
defer v1.deinit();
124122

125123
try v1.set(1, true);
@@ -138,8 +136,7 @@ test "BitVectorTreeView clone drops uncommitted changes" {
138136
var pool = try Node.Pool.init(allocator, 2048);
139137
defer pool.deinit();
140138

141-
const root = try Bits.tree.fromValue(&pool, &Bits.default_value);
142-
var v = try Bits.TreeView.init(allocator, &pool, root);
139+
var v = try Bits.defaultTreeView(allocator, &pool);
143140
defer v.deinit();
144141

145142
try v.set(2, true);

test/int/ssz/tree_view/container.zig

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -95,22 +95,15 @@ test "TreeView container nested types set/get/commit" {
9595
comp_list: CompList,
9696
});
9797

98-
var outer_value: Outer.Type = Outer.default_value;
99-
defer Outer.deinit(allocator, &outer_value);
100-
101-
const root = try Outer.tree.fromValue(allocator, &pool, &outer_value);
102-
var view = try Outer.TreeView.init(allocator, &pool, root);
98+
var view = try Outer.defaultTreeView(allocator, &pool);
10399
defer view.deinit();
104100

105101
try std.testing.expectEqual(@as(u64, 0), try view.get("n"));
106102
try view.set("n", @as(u64, 7));
107103
try std.testing.expectEqual(@as(u64, 7), try view.get("n"));
108104

109105
{
110-
var bytes_value: Bytes.Type = Bytes.default_value;
111-
defer bytes_value.deinit(allocator);
112-
const bytes_root = try Bytes.tree.fromValue(allocator, &pool, &bytes_value);
113-
var bytes_view = try Bytes.TreeView.init(allocator, &pool, bytes_root);
106+
var bytes_view = try Bytes.defaultTreeView(allocator, &pool);
114107

115108
try bytes_view.push(@as(u8, 0xAA));
116109
try bytes_view.push(@as(u8, 0xBB));
@@ -124,9 +117,7 @@ test "TreeView container nested types set/get/commit" {
124117
}
125118

126119
{
127-
const basic_vec_value: BasicVec.Type = [_]u16{ 0, 0, 0, 0 };
128-
const basic_vec_root = try BasicVec.tree.fromValue(&pool, &basic_vec_value);
129-
var basic_vec_view = try BasicVec.TreeView.init(allocator, &pool, basic_vec_root);
120+
var basic_vec_view = try BasicVec.defaultTreeView(allocator, &pool);
130121

131122
try std.testing.expectEqual(@as(u16, 0), try basic_vec_view.get(0));
132123
try basic_vec_view.set(0, @as(u16, 1));
@@ -166,24 +157,15 @@ test "TreeView container nested types set/get/commit" {
166157
}
167158

168159
{
169-
var comp_list_value: CompList.Type = .empty;
170-
defer CompList.deinit(allocator, &comp_list_value);
171-
const comp_list_root = try CompList.tree.fromValue(allocator, &pool, &comp_list_value);
172-
var comp_list_view = try CompList.TreeView.init(allocator, &pool, comp_list_root);
173-
174-
var inner_value: InnerVar.Type = InnerVar.default_value;
175-
defer InnerVar.deinit(allocator, &inner_value);
176-
const inner_root = try InnerVar.tree.fromValue(allocator, &pool, &inner_value);
177-
var inner_view: ?InnerVar.TreeView = try InnerVar.TreeView.init(allocator, &pool, inner_root);
160+
var comp_list_view = try CompList.defaultTreeView(allocator, &pool);
161+
162+
var inner_view: ?InnerVar.TreeView = try InnerVar.defaultTreeView(allocator, &pool);
178163
defer if (inner_view) |*v| v.deinit();
179164
const inner = &inner_view.?;
180165

181166
try inner.set("id", @as(u32, 99));
182167

183-
var payload_value: InnerVar.TreeView.Field("payload").SszType.Type = InnerVar.TreeView.Field("payload").SszType.default_value;
184-
defer payload_value.deinit(allocator);
185-
const payload_root = try InnerVar.TreeView.Field("payload").SszType.tree.fromValue(allocator, &pool, &payload_value);
186-
var payload_view = try InnerVar.TreeView.Field("payload").init(allocator, &pool, payload_root);
168+
var payload_view = try InnerVar.TreeView.Field("payload").SszType.defaultTreeView(allocator, &pool);
187169
try payload_view.push(@as(u8, 0x5A));
188170
try inner.set("payload", payload_view);
189171

test/int/ssz/tree_view/list_basic.zig

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -674,11 +674,7 @@ test "ListBasicTreeView - push and serialize" {
674674
var pool = try Node.Pool.init(allocator, 1024);
675675
defer pool.deinit();
676676

677-
var value: ListU8Type.Type = ListU8Type.default_value;
678-
defer value.deinit(allocator);
679-
680-
const tree_node = try ListU8Type.tree.fromValue(allocator, &pool, &value);
681-
var view = try ListU8Type.TreeView.init(allocator, &pool, tree_node);
677+
var view = try ListU8Type.defaultTreeView(allocator, &pool);
682678
defer view.deinit();
683679

684680
try view.push(1);

0 commit comments

Comments
 (0)