Skip to content

Commit 42670a7

Browse files
committed
bincode: remove redundant code
1 parent 6ac5250 commit 42670a7

File tree

6 files changed

+42
-187
lines changed

6 files changed

+42
-187
lines changed

src/bincode/bincode.zig

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ pub const bounded_array = @import("bounded_array.zig");
44
pub const int = @import("int.zig");
55
pub const list = @import("list.zig");
66
pub const optional = @import("optional.zig");
7-
pub const varint = @import("varint.zig");
87
pub const shortvec = @import("shortvec.zig");
98

109
const std = @import("std");
@@ -612,6 +611,30 @@ pub fn freeWithConfig(
612611
}
613612
}
614613

614+
pub fn VarIntConfig(comptime T: type) bincode.FieldConfig(T) {
615+
const S = struct {
616+
pub fn serialize(writer: anytype, data: anytype, params: bincode.Params) !void {
617+
_ = params;
618+
return std.leb.writeUleb128(writer, data);
619+
}
620+
621+
pub fn deserialize(
622+
allocator: std.mem.Allocator,
623+
reader: anytype,
624+
params: bincode.Params,
625+
) !T {
626+
_ = params;
627+
_ = allocator;
628+
return std.leb.readUleb128(T, reader);
629+
}
630+
};
631+
632+
return bincode.FieldConfig(T){
633+
.serializer = S.serialize,
634+
.deserializer = S.deserialize,
635+
};
636+
}
637+
615638
pub fn FieldConfig(comptime T: type) type {
616639
return struct {
617640
deserializer: ?fn (alloc: std.mem.Allocator, reader: anytype, params: Params) anyerror!T = null,

src/bincode/shortvec.zig

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,19 @@ const sig = @import("../sig.zig");
33

44
const bincode = sig.bincode;
55

6-
const serializeShortU16 = sig.bincode.varint.serializeShortU16;
7-
const deserializeShortU16 = sig.bincode.varint.deserializeShortU16;
8-
96
pub fn sliceConfig(comptime Slice: type) bincode.FieldConfig(Slice) {
107
const Child = std.meta.Elem(Slice);
118
const S = struct {
129
pub fn serialize(writer: anytype, data: anytype, params: bincode.Params) !void {
1310
const len: u16 = std.math.cast(u16, data.len) orelse return error.DataTooLarge;
14-
try serializeShortU16(writer, len);
11+
try std.leb.writeUleb128(writer, len);
1512
for (data) |item| {
1613
try bincode.write(writer, item, params);
1714
}
1815
}
1916

2017
pub fn deserialize(allocator: std.mem.Allocator, reader: anytype, params: bincode.Params) !Slice {
21-
const len, _ = try deserializeShortU16(reader);
18+
const len = try std.leb.readUleb128(u16, reader);
2219
const elems = try allocator.alloc(Child, len);
2320
errdefer allocator.free(elems);
2421
for (elems, 0..) |*elem, i| {
@@ -46,14 +43,14 @@ pub fn arrayListConfig(comptime Child: type) bincode.FieldConfig(std.ArrayList(C
4643
pub fn serialize(writer: anytype, data: anytype, params: bincode.Params) !void {
4744
const list: std.ArrayList(Child) = data;
4845
const len = std.math.cast(u16, list.items.len) orelse return error.DataTooLarge;
49-
try serializeShortU16(writer, len);
46+
try std.leb.writeUleb128(writer, len);
5047
for (list.items) |item| {
5148
try bincode.write(writer, item, params);
5249
}
5350
}
5451

5552
pub fn deserialize(allocator: std.mem.Allocator, reader: anytype, params: bincode.Params) !std.ArrayList(Child) {
56-
const len, _ = try deserializeShortU16(reader);
53+
const len = try std.leb.readUleb128(u16, reader);
5754
var list = try std.ArrayList(Child).initCapacity(allocator, @as(usize, len));
5855
for (0..len) |_| {
5956
const item = try bincode.read(allocator, Child, reader, params);

src/bincode/varint.zig

Lines changed: 0 additions & 149 deletions
This file was deleted.

src/gossip/data.zig

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ const BitVecConfig = sig.bloom.bit_vec.BitVecConfig;
2525
const sanitizeWallclock = sig.gossip.message.sanitizeWallclock;
2626

2727
const PACKET_DATA_SIZE = sig.net.Packet.DATA_SIZE;
28-
const var_int_config_u16 = sig.bincode.varint.var_int_config_u16;
29-
const var_int_config_u64 = sig.bincode.varint.var_int_config_u64;
3028

3129
pub const MAX_EPOCH_SLOTS: u8 = 255;
3230
pub const MAX_VOTES: u8 = 32;
@@ -1271,7 +1269,7 @@ pub const ContactInfo = struct {
12711269
pub const @"!bincode-config:addrs" = bincode.shortvec.arrayListConfig(IpAddr);
12721270
pub const @"!bincode-config:sockets" = bincode.shortvec.arrayListConfig(SocketEntry);
12731271
pub const @"!bincode-config:extensions" = bincode.shortvec.arrayListConfig(Extension);
1274-
pub const @"!bincode-config:wallclock" = var_int_config_u64;
1272+
pub const @"!bincode-config:wallclock" = bincode.VarIntConfig(u64);
12751273

12761274
const Self = @This();
12771275

@@ -1566,7 +1564,7 @@ pub const SocketEntry = struct {
15661564

15671565
const Self = @This();
15681566

1569-
pub const @"!bincode-config:offset" = var_int_config_u16;
1567+
pub const @"!bincode-config:offset" = bincode.VarIntConfig(u16);
15701568

15711569
pub fn eql(self: *const Self, other: *const Self) bool {
15721570
return self.key == other.key and

src/runtime/program/vote/state.zig

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -164,9 +164,9 @@ pub fn serializeCompactVoteStateUpdate(
164164

165165
// Serialize in compact format
166166
try writer.writeInt(Slot, data.root orelse 0, .little);
167-
try sig.bincode.varint.serializeShortU16(writer, @intCast(lockouts.len));
167+
try std.leb.writeUleb128(writer, @as(u16, @intCast(lockouts.len)));
168168
for (lockouts.constSlice()) |lockout| {
169-
try sig.bincode.varint.serializeShortU16(writer, @intCast(lockout[0]));
169+
try std.leb.writeUleb128(writer, @as(u16, @intCast(lockout[0])));
170170
try writer.writeInt(u8, @intCast(lockout[1]), .little);
171171
}
172172
try writer.writeAll(&data.hash.data);
@@ -187,15 +187,11 @@ pub fn deserializeCompactVoteStateUpdate(
187187
root = if (root == std.math.maxInt(Slot)) 0 else root;
188188

189189
var slot = if (root == std.math.maxInt(Slot)) 0 else root;
190-
const lockouts_len, _ = try sig.bincode.varint.deserializeShortU16(reader);
190+
const lockouts_len = try std.leb.readUleb128(u16, reader);
191191
const lockouts = try allocator.alloc(Lockout, lockouts_len);
192192
errdefer allocator.free(lockouts);
193193
for (lockouts) |*lockout| {
194-
const offset = try sig.bincode.varint.var_int_config_u64.deserializer.?(
195-
allocator,
196-
reader,
197-
.{},
198-
);
194+
const offset = try std.leb.readUleb128(u64, reader);
199195
const confirmation_count = try reader.readInt(u8, .little);
200196
slot = try std.math.add(Slot, slot, offset);
201197
lockout.* = .{ .slot = slot, .confirmation_count = confirmation_count };
@@ -263,13 +259,9 @@ pub fn serializeTowerSync(writer: anytype, data: anytype, _: sig.bincode.Params)
263259

264260
// Serialize in compact format
265261
try writer.writeInt(Slot, data.root orelse 0, .little);
266-
try sig.bincode.varint.serializeShortU16(writer, @intCast(lockouts.len));
262+
try std.leb.writeUleb128(writer, @as(u16, @intCast(lockouts.len)));
267263
for (lockouts.constSlice()) |lockout| {
268-
try sig.bincode.varint.var_int_config_u64.serializer.?(
269-
writer,
270-
lockout[0],
271-
.{},
272-
);
264+
try std.leb.writeUleb128(writer, lockout[0]);
273265
try writer.writeInt(u8, lockout[1], .little);
274266
}
275267
try writer.writeAll(&data.hash.data);
@@ -290,15 +282,11 @@ pub fn deserializeTowerSync(
290282
const root = try reader.readInt(Slot, .little);
291283

292284
var slot = if (root == std.math.maxInt(Slot)) 0 else root;
293-
const lockouts_len, _ = try sig.bincode.varint.deserializeShortU16(reader);
285+
const lockouts_len = try std.leb.readUleb128(u16, reader);
294286
const lockouts = try allocator.alloc(Lockout, lockouts_len);
295287
errdefer allocator.free(lockouts);
296288
for (lockouts) |*lockout| {
297-
const offset = try sig.bincode.varint.var_int_config_u64.deserializer.?(
298-
allocator,
299-
reader,
300-
.{},
301-
);
289+
const offset = try std.leb.readUleb128(u64, reader);
302290
const confirmation_count = try reader.readInt(u8, .little);
303291
slot = try std.math.add(Slot, slot, offset);
304292
lockout.* = .{ .slot = slot, .confirmation_count = confirmation_count };

src/version/version.zig

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
const sig = @import("../sig.zig");
22

3-
const var_int_config_u16 = sig.bincode.varint.var_int_config_u16;
4-
53
pub const CURRENT_CLIENT_VERSION: ClientVersion = ClientVersion.new(0, 1, 0, 0, 0, 4);
64

75
pub const ClientVersion = struct {
@@ -34,8 +32,8 @@ pub const ClientVersion = struct {
3432
};
3533
}
3634

37-
pub const @"!bincode-config:major" = var_int_config_u16;
38-
pub const @"!bincode-config:minor" = var_int_config_u16;
39-
pub const @"!bincode-config:patch" = var_int_config_u16;
40-
pub const @"!bincode-config:client" = var_int_config_u16;
35+
pub const @"!bincode-config:major" = sig.bincode.VarIntConfig(u16);
36+
pub const @"!bincode-config:minor" = sig.bincode.VarIntConfig(u16);
37+
pub const @"!bincode-config:patch" = sig.bincode.VarIntConfig(u16);
38+
pub const @"!bincode-config:client" = sig.bincode.VarIntConfig(u16);
4139
};

0 commit comments

Comments
 (0)