1
0
Fork 0
mirror of https://github.com/zigzap/zap.git synced 2025-10-20 15:14:08 +00:00

include BuildResult in public Mustache API

This commit is contained in:
Thom Dickson 2024-07-14 00:09:20 -04:00
parent 4868cdcb17
commit 573b27b9d8
No known key found for this signature in database

View file

@ -113,7 +113,7 @@ pub fn deinit(self: *Self) void {
// pub extern fn fiobj_mustache_build2(dest: FIOBJ, mustache: ?*mustache_s, data: FIOBJ) FIOBJ; // pub extern fn fiobj_mustache_build2(dest: FIOBJ, mustache: ?*mustache_s, data: FIOBJ) FIOBJ;
/// The result from calling `build`. /// The result from calling `build`.
const MustacheBuildResult = struct { pub const BuildResult = struct {
fiobj_result: fio.FIOBJ = 0, fiobj_result: fio.FIOBJ = 0,
/// Holds the context converted into a fiobj. /// Holds the context converted into a fiobj.
@ -121,13 +121,13 @@ const MustacheBuildResult = struct {
fiobj_context: fio.FIOBJ = 0, fiobj_context: fio.FIOBJ = 0,
/// Free the data backing a `MustacheBuildResult` instance. /// Free the data backing a `MustacheBuildResult` instance.
pub fn deinit(m: *const MustacheBuildResult) void { pub fn deinit(m: *const BuildResult) void {
fio.fiobj_free_wrapped(m.fiobj_result); fio.fiobj_free_wrapped(m.fiobj_result);
fio.fiobj_free_wrapped(m.fiobj_context); fio.fiobj_free_wrapped(m.fiobj_context);
} }
/// Retrieve a string representation of the built template. /// Retrieve a string representation of the built template.
pub fn str(m: *const MustacheBuildResult) ?[]const u8 { pub fn str(m: *const BuildResult) ?[]const u8 {
return util.fio2str(m.fiobj_result); return util.fio2str(m.fiobj_result);
} }
}; };
@ -137,13 +137,13 @@ const MustacheBuildResult = struct {
// TODO: The build may be slow because it needs to convert zig types to facil.io // TODO: The build may be slow because it needs to convert zig types to facil.io
// types. However, this needs to be investigated into. // types. However, this needs to be investigated into.
// See `fiobjectify` for more information. // See `fiobjectify` for more information.
pub fn build(self: *Self, data: anytype) MustacheBuildResult { pub fn build(self: *Self, data: anytype) BuildResult {
const T = @TypeOf(data); const T = @TypeOf(data);
if (@typeInfo(T) != .Struct) { if (@typeInfo(T) != .Struct) {
@compileError("No struct: '" ++ @typeName(T) ++ "'"); @compileError("No struct: '" ++ @typeName(T) ++ "'");
} }
var result: MustacheBuildResult = .{}; var result: BuildResult = .{};
result.fiobj_context = fiobjectify(data); result.fiobj_context = fiobjectify(data);
result.fiobj_result = fiobj_mustache_build(self.handle, result.fiobj_context); result.fiobj_result = fiobj_mustache_build(self.handle, result.fiobj_context);