diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main.zig | 37 | ||||
-rw-r--r-- | src/request.zig | 4 |
2 files changed, 28 insertions, 13 deletions
diff --git a/src/main.zig b/src/main.zig index bdffa31..a52079a 100644 --- a/src/main.zig +++ b/src/main.zig @@ -76,16 +76,33 @@ export fn c_session_get(client: ?*anyopaque, buf: [*]u8) c_int { return 0; } -//test "c api" { -//const clientOptions = transmission.ClientOptions{ -//.host = "192.168.0.2", -//.port = 9091, -//.https = false, -//}; -//var foo = c_client_init(clientOptions); -//_ = c_session_get(foo, undefined); -//c_client_deinit(foo); -//} +export fn c_torrent_get(client: ?*anyopaque) c_int { + var real_client: *transmission.Client = @ptrCast(*transmission.Client, @alignCast( + @alignOf(transmission.Client), + client.?, + )); + + const body = transmission.torrent_get_raw(real_client, null) catch |err| { + std.debug.print("error: {any}\n", .{err}); + unreachable; + }; + defer allocator.free(body); + + std.debug.print("body: {s}\n", .{body}); + return 0; +} + +test "c api" { + const clientOptions = transmission.ClientOptions{ + .host = "192.168.0.2", + .port = 9091, + .https = false, + }; + var foo = c_client_init(clientOptions); + _ = c_session_get(foo, undefined); + _ = c_torrent_get(foo, undefined); + c_client_deinit(foo); +} test "basic add functionality" { try testing.expect(add(3, 7) == 10); diff --git a/src/request.zig b/src/request.zig index 2633428..478999b 100644 --- a/src/request.zig +++ b/src/request.zig @@ -57,9 +57,7 @@ pub const TorrentIDs = union(enum) { many: []const usize, recently_active, - const Self = @This(); - - pub fn jsonStringify(self: Self, options: std.json.StringifyOptions, out_stream: anytype) !void { + pub fn jsonStringify(self: TorrentIDs, options: std.json.StringifyOptions, out_stream: anytype) !void { switch (self) { .single => |v| try std.json.stringify(v, options, out_stream), .many => |v| try std.json.stringify(v, options, out_stream), |