summaryrefslogtreecommitdiff
path: root/src/response.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/response.zig')
-rw-r--r--src/response.zig47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/response.zig b/src/response.zig
new file mode 100644
index 0000000..8964de4
--- /dev/null
+++ b/src/response.zig
@@ -0,0 +1,47 @@
+const std = @import("std");
+const Request = @import("request.zig");
+const Types = @import("types.zig");
+
+pub const Response = @This();
+
+pub const TorrentGet = struct {
+ pub const Arguments = struct {
+ torrents: ?[]Types.Torrent = null,
+ };
+
+ result: []const u8,
+ arguments: Arguments,
+};
+
+pub const Object = struct {
+ pub const Arguments = union(Request.Method) {
+ torrent_start,
+ torrent_start_now,
+ torrent_stop,
+ torrent_verify,
+ torrent_reannounce,
+ torrent_set,
+ torrent_get: TorrentGet.Arguments,
+ torrent_add,
+ torrent_remove,
+ torrent_set_location,
+ torrent_rename_path,
+ session_get,
+ session_set,
+ };
+
+ result: []const u8,
+ arguments: Arguments,
+
+ pub fn init(arguments: Arguments, result: []const u8) Object {
+ switch (arguments) {
+ .torrent_get => {
+ return Object{
+ .result = result,
+ .arguments = arguments,
+ };
+ },
+ else => unreachable,
+ }
+ }
+};