51 lines
1.2 KiB
Zig
51 lines
1.2 KiB
Zig
const std = @import("std");
|
|
const sqlite = @import("sqlite");
|
|
|
|
const Db = @import("Db.zig");
|
|
const Item = @import("Item.zig");
|
|
const Tag = @import("Tag.zig");
|
|
const json = @import("json.zig");
|
|
|
|
pub fn main() !void {
|
|
var db = try Db.init();
|
|
|
|
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
|
|
defer arena.deinit();
|
|
const allocator = arena.allocator();
|
|
|
|
const jsonText: [:0]const u8 =
|
|
\\{
|
|
\\ "tags": {
|
|
\\ "title": "Programar sistema de TODO",
|
|
\\ "programming" : "zig",
|
|
\\ "due" : "2023-01-01"
|
|
\\ }
|
|
\\}
|
|
;
|
|
|
|
var jsonItem = json.Obj.newFromString(jsonText);
|
|
defer jsonItem.deinit();
|
|
|
|
var item = try Item.fromJson(jsonItem, allocator);
|
|
defer item.deinit();
|
|
|
|
try item.persist(&db);
|
|
|
|
// ----------
|
|
|
|
const jsonText2: [:0]const u8 =
|
|
\\{ "id" : 1 }
|
|
;
|
|
|
|
var jsonItem2 = json.Obj.newFromString(jsonText2);
|
|
defer jsonItem2.deinit();
|
|
|
|
var item2 = try Item.fromJson(jsonItem2, allocator);
|
|
defer item2.deinit();
|
|
|
|
var jobj = item2.toJson();
|
|
defer jobj.deinit();
|
|
|
|
std.debug.print("{s}\n", .{jobj.toString()});
|
|
}
|