mirror of
https://github.com/zigzap/zap.git
synced 2025-10-20 23:24:09 +00:00
- Updated tests (all passing)
- Resolved `init()` comment stating an error occured if nothing was passed in. - Replaced error at an unreachable location in `init()` to `unreachable` - Made many members private
This commit is contained in:
parent
9fd8c13b32
commit
9cc371e567
2 changed files with 16 additions and 16 deletions
|
@ -9,18 +9,17 @@ const util = @import("util.zig");
|
|||
pub const Mustache = struct {
|
||||
const Self = @This();
|
||||
|
||||
pub const struct_mustache_s = opaque {};
|
||||
pub const enum_mustache_error_en = c_uint;
|
||||
pub const mustache_error_en = enum_mustache_error_en;
|
||||
const struct_mustache_s = opaque {};
|
||||
const mustache_s = struct_mustache_s;
|
||||
const enum_mustache_error_en = c_uint;
|
||||
const mustache_error_en = enum_mustache_error_en;
|
||||
|
||||
pub const mustache_s = struct_mustache_s;
|
||||
pub extern fn fiobj_mustache_new(args: MustacheLoadArgsFio) ?*mustache_s;
|
||||
pub extern fn fiobj_mustache_build(mustache: ?*mustache_s, data: fio.FIOBJ) fio.FIOBJ;
|
||||
pub extern fn fiobj_mustache_build2(dest: fio.FIOBJ, mustache: ?*mustache_s, data: fio.FIOBJ) fio.FIOBJ;
|
||||
pub extern fn fiobj_mustache_free(mustache: ?*mustache_s) void;
|
||||
extern fn fiobj_mustache_new(args: MustacheLoadArgsFio) ?*mustache_s;
|
||||
extern fn fiobj_mustache_build(mustache: ?*mustache_s, data: fio.FIOBJ) fio.FIOBJ;
|
||||
extern fn fiobj_mustache_build2(dest: fio.FIOBJ, mustache: ?*mustache_s, data: fio.FIOBJ) fio.FIOBJ;
|
||||
extern fn fiobj_mustache_free(mustache: ?*mustache_s) void;
|
||||
|
||||
/// Load arguments used when creating a new Mustache instance.
|
||||
/// One source of data must be passed in, otherwise an error will occur.
|
||||
pub const MustacheLoadArgs = struct {
|
||||
/// Filename. This enables partial templates on filesystem.
|
||||
filename: ?[]const u8 = null,
|
||||
|
@ -94,7 +93,7 @@ pub const Mustache = struct {
|
|||
11 => return Error.MUSTACHE_ERR_USER_ERROR,
|
||||
else => return Error.MUSTACHE_ERR_UNKNOWN,
|
||||
}
|
||||
return Error.MUSTACHE_ERR_UNKNOWN;
|
||||
unreachable;
|
||||
}
|
||||
|
||||
/// Convenience function to create a new `Mustache` instance with in-memory data loaded;
|
||||
|
|
|
@ -24,20 +24,21 @@ const data = .{
|
|||
|
||||
test "mustacheData" {
|
||||
const template = "{{=<< >>=}}* Users:\n<<#users>><<id>>. <<& name>> (<<name>>)\n<</users>>\nNested: <<& nested.item >>.";
|
||||
const p = try zap.mustacheData(template);
|
||||
defer zap.mustacheFree(p);
|
||||
|
||||
const ret = zap.mustacheBuild(p, data);
|
||||
var mustache = try zap.Mustache.fromData(template);
|
||||
defer mustache.deinit();
|
||||
|
||||
const ret = mustache.build(data);
|
||||
defer ret.deinit();
|
||||
|
||||
try std.testing.expectEqualSlices(u8, "* Users:\n1. Rene (Rene)\n6. Caro (Caro)\nNested: nesting works.", ret.str().?);
|
||||
}
|
||||
|
||||
test "mustacheLoad" {
|
||||
const p = try zap.mustacheLoad("./src/tests/testtemplate.html");
|
||||
defer zap.mustacheFree(p);
|
||||
var mustache = try zap.Mustache.fromFile("./src/tests/testtemplate.html");
|
||||
defer mustache.deinit();
|
||||
|
||||
const ret = zap.mustacheBuild(p, data);
|
||||
const ret = mustache.build(data);
|
||||
defer ret.deinit();
|
||||
|
||||
try std.testing.expectEqualSlices(u8, "* Users:\n1. Rene (Rene)\n6. Caro (Caro)\nNested: nesting works.\n", ret.str().?);
|
||||
|
|
Loading…
Add table
Reference in a new issue