From f8e0fbddaa2ca457bf1bbda52607a144072707b9 Mon Sep 17 00:00:00 2001 From: Trevor Berrange Sanchez Date: Mon, 10 Jun 2024 15:39:20 +0200 Subject: [PATCH] Simplify `getEntrypoints` Just use a normal hash set duplicating the entrypoints in the arraylist, and eschew the custom entrypoint list formatting. --- src/cmd/cmd.zig | 38 ++++---------------------------------- 1 file changed, 4 insertions(+), 34 deletions(-) diff --git a/src/cmd/cmd.zig b/src/cmd/cmd.zig index 2be9a9fac..77dea2920 100644 --- a/src/cmd/cmd.zig +++ b/src/cmd/cmd.zig @@ -3,6 +3,7 @@ const base58 = @import("base58-zig"); const cli = @import("zig-cli"); const network = @import("zig-network"); const helpers = @import("helpers.zig"); +const sig = @import("../lib.zig"); const Atomic = std.atomic.Value; const KeyPair = std.crypto.sign.Ed25519.KeyPair; @@ -617,26 +618,10 @@ fn getMyDataFromIpEcho( } fn getEntrypoints(logger: Logger) !std.ArrayList(SocketAddr) { - const EntrypointSet = std.ArrayHashMap(void, void, struct { - // zig fmt: off - pub fn hash(_: @This(), _: void) u32 { unreachable; } - pub fn eql(_: @This(), _: void, _: void, _: usize) bool { unreachable; } - // zig fmt: on - }, true); - const EntrypointCtx = struct { - entrypoints: []const SocketAddr, - pub fn hash(_: @This(), entrypoint: SocketAddr) u32 { - const array, const len = entrypoint.toString(); - return std.array_hash_map.hashString(array[0..len]); - } - pub fn eql(ctx: @This(), a: SocketAddr, _: void, b_index: usize) bool { - return a.eql(&ctx.entrypoints[b_index]); - } - }; - var entrypoints = std.ArrayList(SocketAddr).init(gpa_allocator); errdefer entrypoints.deinit(); + const EntrypointSet = std.AutoArrayHashMap(SocketAddr, void); var entrypoint_set = EntrypointSet.init(gpa_allocator); defer entrypoint_set.deinit(); @@ -677,29 +662,14 @@ fn getEntrypoints(logger: Logger) !std.ArrayList(SocketAddr) { break :brk socket_addr; }; - const gop = entrypoint_set.getOrPutAssumeCapacityAdapted(socket_addr, EntrypointCtx{ .entrypoints = entrypoints.items }); + const gop = entrypoint_set.getOrPutAssumeCapacity(socket_addr); if (!gop.found_existing) { entrypoints.appendAssumeCapacity(socket_addr); } } // log entrypoints - const EntrypointsFmt = struct { - entrypoints: []const SocketAddr, - - pub fn format( - entrypoints_fmt: @This(), - comptime fmt_str: []const u8, - fmt_options: std.fmt.FormatOptions, - writer: anytype, - ) !void { - for (0.., entrypoints_fmt.entrypoints) |i, entrypoint| { - if (i != 0) try writer.writeAll(", "); - try entrypoint.toAddress().format(fmt_str, fmt_options, writer); - } - } - }; - logger.infof("entrypoints: {}", .{EntrypointsFmt{ .entrypoints = entrypoints.items }}); + logger.infof("entrypoints: {any}", .{entrypoints.items}); return entrypoints; }