From 4349f6e25de47cf149807bd8e81d9144617b1969 Mon Sep 17 00:00:00 2001 From: Rene Schallner Date: Fri, 19 May 2023 14:47:55 +0200 Subject: [PATCH] new release after std.json chanes --- build.zig.zon | 2 +- src/util.zig | 86 ++++++++++++++++++++++++++------------------------- 2 files changed, 45 insertions(+), 43 deletions(-) diff --git a/build.zig.zon b/build.zig.zon index 9731bff..ba26f6e 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -1,6 +1,6 @@ .{ .name = "zap", - .version = "0.0.21", + .version = "0.0.22", .dependencies = .{ .@"facil.io" = .{ diff --git a/src/util.zig b/src/util.zig index 1a38f95..5aee930 100644 --- a/src/util.zig +++ b/src/util.zig @@ -54,48 +54,6 @@ pub fn toCharPtr(s: []const u8) [*c]u8 { // JSON helpers // -// 1MB JSON buffer -var jsonbuf: [1024 * 1024]u8 = undefined; -var mutex: std.Thread.Mutex = .{}; - -/// use default 1MB buffer, mutex-protected -pub fn stringify( - value: anytype, - options: std.json.StringifyOptions, -) ?[]const u8 { - mutex.lock(); - defer mutex.unlock(); - var fba = std.heap.FixedBufferAllocator.init(&jsonbuf); - var string = std.ArrayList(u8).init(fba.allocator()); - if (std.json.stringify(value, options, string.writer())) { - return string.items; - } else |_| { // error - return null; - } -} - -/// use default 1MB buffer, mutex-protected -pub fn stringifyArrayList( - comptime T: anytype, - list: *std.ArrayList(T), - options: std.json.StringifyOptions, -) !?[]const u8 { - mutex.lock(); - defer mutex.unlock(); - var fba = std.heap.FixedBufferAllocator.init(&jsonbuf); - var string = std.ArrayList(u8).init(fba.allocator()); - var writer = string.writer(); - try writer.writeByte('['); - var first: bool = true; - for (list.items) |user| { - if (!first) try writer.writeByte(','); - first = false; - try std.json.stringify(user, options, string.writer()); - } - try writer.writeByte(']'); - return string.items; -} - /// provide your own buf, NOT mutex-protected! pub fn stringifyBuf( buffer: []u8, @@ -110,3 +68,47 @@ pub fn stringifyBuf( return null; } } + +// deprecated: + +// 1MB JSON buffer +// var jsonbuf: [1024 * 1024]u8 = undefined; +// var mutex: std.Thread.Mutex = .{}; + +// use default 1MB buffer, mutex-protected +// pub fn stringify( +// value: anytype, +// options: std.json.StringifyOptions, +// ) ?[]const u8 { +// mutex.lock(); +// defer mutex.unlock(); +// var fba = std.heap.FixedBufferAllocator.init(&jsonbuf); +// var string = std.ArrayList(u8).init(fba.allocator()); +// if (std.json.stringify(value, options, string.writer())) { +// return string.items; +// } else |_| { // error +// return null; +// } +// } + +// use default 1MB buffer, mutex-protected +// pub fn stringifyArrayList( +// comptime T: anytype, +// list: *std.ArrayList(T), +// options: std.json.StringifyOptions, +// ) !?[]const u8 { +// mutex.lock(); +// defer mutex.unlock(); +// var fba = std.heap.FixedBufferAllocator.init(&jsonbuf); +// var string = std.ArrayList(u8).init(fba.allocator()); +// var writer = string.writer(); +// try writer.writeByte('['); +// var first: bool = true; +// for (list.items) |user| { +// if (!first) try writer.writeByte(','); +// first = false; +// try std.json.stringify(user, options, string.writer()); +// } +// try writer.writeByte(']'); +// return string.items; +// }