diff options
| author | Robby Zambito <contact@robbyzambito.me> | 2026-01-02 14:11:00 +0000 |
|---|---|---|
| committer | Robby Zambito <contact@robbyzambito.me> | 2026-01-02 14:11:23 +0000 |
| commit | 810e5f82113a0e3b24c4ad0b66afa045b86372df (patch) | |
| tree | 7421027ce4e73b5bc017085b05f89d2c37eb342d /src/server/message_parser.zig | |
| parent | aca265f09576645ef904a8a4e3cd2bb674ea11fb (diff) | |
Much better cleanup, still fast B)
Diffstat (limited to 'src/server/message_parser.zig')
| -rw-r--r-- | src/server/message_parser.zig | 12 |
1 files changed, 11 insertions, 1 deletions
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); |
