summaryrefslogtreecommitdiff
path: root/src/transmission.zig
diff options
context:
space:
mode:
authorChristian Segundo2023-06-12 00:12:43 +0200
committerChristian Segundo2023-06-12 00:12:43 +0200
commit6eaf6a8f3f3880372bdfa0027805213d109a80cc (patch)
treeff57b20febf3513d7f7b6bcb50924843753ca9c6 /src/transmission.zig
parent3bd3f432a95da405634cdbd2a662d79a3a5ba7af (diff)
downloadzmission-6eaf6a8f3f3880372bdfa0027805213d109a80cc.tar.gz
allow getting all fields
Diffstat (limited to 'src/transmission.zig')
-rw-r--r--src/transmission.zig14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/transmission.zig b/src/transmission.zig
index fec1b12..93fe7f4 100644
--- a/src/transmission.zig
+++ b/src/transmission.zig
@@ -92,12 +92,22 @@ pub const Client = struct {
}
};
-pub fn sessionGet(client: *Client) ![]u8 {
+pub fn session_get_raw(client: *Client, fields: ?[]SessionGetFields) ![]u8 {
+ const all_fields = comptime blk: {
+ var all_fields: []const SessionGetFields = &[_]SessionGetFields{};
+ inline for (@typeInfo(SessionGetFields).Enum.fields) |enumField| {
+ all_fields = all_fields ++ &[_]SessionGetFields{
+ @field(SessionGetFields, enumField.name),
+ };
+ }
+ break :blk all_fields;
+ };
+
const r = Request{
.method = .session_get,
.arguments = .{
.session_get = .{
- .fields = &[_]SessionGetFields{ .version, .utp_enabled },
+ .fields = fields orelse all_fields,
},
},
};