From 433a97fe5a973157f9cd9f62f0a62ad1a951b0c9 Mon Sep 17 00:00:00 2001 From: Robby Zambito Date: Sat, 5 Apr 2025 17:37:24 -0400 Subject: Move binary back to zaprus Also clean up the args for the aux functions by computing the type instead of passing it --- src/main.zig | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/main.zig (limited to 'src/main.zig') diff --git a/src/main.zig b/src/main.zig new file mode 100644 index 0000000..f43f2bd --- /dev/null +++ b/src/main.zig @@ -0,0 +1,43 @@ +const is_debug = builtin.mode == .Debug; + +/// This creates a debug allocator that can only be referenced in debug mode. +/// You should check for is_debug around every reference to dba. +var dba: DebugAllocator = + if (is_debug) + DebugAllocator.init + else + @compileError("Should not use debug allocator in release mode"); + +pub fn main() !void { + defer if (is_debug) { + _ = dba.deinit(); + }; + + const gpa = if (is_debug) dba.allocator() else std.heap.smp_allocator; + + const args = try std.process.argsAlloc(gpa); + defer std.process.argsFree(gpa, args); + + var message = ArrayList(u8).init(gpa); + defer message.deinit(); + + for (args[1..], 0..) |arg, i| { + try message.appendSlice(arg); + if (i < args.len - 1) + try message.append(' '); + } + + try Saprus.init(); + defer Saprus.deinit(); + + try Saprus.sendInitialConnection(if (message.items.len > 0) message.items else "Hello darkness my old friend", 6868, gpa); + + // try Saprus.sendRelay(if (message.items.len > 0) message.items else "Hello darkness my old friend", gpa); +} + +const builtin = @import("builtin"); +const std = @import("std"); +const DebugAllocator = std.heap.DebugAllocator(.{}); +const ArrayList = std.ArrayList; + +const Saprus = @import("./saprus.zig"); -- cgit