From 810e5f82113a0e3b24c4ad0b66afa045b86372df Mon Sep 17 00:00:00 2001 From: Robby Zambito Date: Fri, 2 Jan 2026 14:11:00 +0000 Subject: Much better cleanup, still fast B) --- src/server/message_parser.zig | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/server/message_parser.zig') diff --git a/src/server/message_parser.zig b/src/server/message_parser.zig index bd14ec7..68e7a20 100644 --- a/src/server/message_parser.zig +++ b/src/server/message_parser.zig @@ -137,6 +137,16 @@ pub const Message = union(MessageType) { alloc.free(self.payload); if (self.reply_to) |r| alloc.free(r); } + + pub fn toMsg(self: Pub, alloc: std.mem.Allocator, sid: []const u8) !Msg { + const res: Msg = .{ + .subject = self.subject, + .sid = sid, + .reply_to = self.reply_to, + .payload = self.payload, + }; + return res.dupe(alloc); + } }; pub const Sub = struct { /// The subject name to subscribe to. @@ -177,7 +187,7 @@ pub const Message = union(MessageType) { errdefer alloc.free(res.subject); res.sid = try alloc.dupe(u8, self.sid); errdefer alloc.free(res.sid); - res.reply_to = if (self.reply_to) |r| alloc.dupe(u8, r) else null; + res.reply_to = if (self.reply_to) |r| try alloc.dupe(u8, r) else null; errdefer if (res.reply_to) |r| alloc.free(r); res.payload = try alloc.dupe(u8, self.payload); errdefer alloc.free(res.payload); -- cgit