aboutsummaryrefslogtreecommitdiff
path: root/src/main.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/main.zig b/src/main.zig
index 050e335..916742f 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -1,5 +1,29 @@
const std = @import("std");
+const c = @import("c.zig");
+
+const example = @embedFile("example.html");
pub fn main() !void {
-
+ var html_search: c.QuickMediaHtmlSearch = undefined;
+ if(c.quickmedia_html_search_init(&html_search, example.ptr, example.len) != 0)
+ return error.FailedToInitHtmlSearch;
+ defer c.quickmedia_html_search_deinit(&html_search);
+
+ if(c.quickmedia_html_find_nodes_xpath(&html_search, "//div[class='cool']", resultCallback, null) != 0)
+ return error.FailedToFindNodes;
+}
+
+fn resultCallback(node: [*c]c.QuickMediaMatchNode, userdata: ?*anyopaque) callconv(.C) c_int {
+ _ = userdata;
+ const text = stringViewToSlice(c.quickmedia_html_node_get_text(node));
+ std.debug.print("found match, text: {s}\n", .{text});
+ return 0;
+}
+
+fn stringViewToSlice(view: c.QuickMediaStringView) []const u8 {
+ if(view.size == 0) {
+ return "";
+ } else {
+ return view.data[0..view.size];
+ }
} \ No newline at end of file