diff options
author | Christian Segundo | 2023-06-12 00:12:43 +0200 |
---|---|---|
committer | Christian Segundo | 2023-06-12 00:12:43 +0200 |
commit | 6eaf6a8f3f3880372bdfa0027805213d109a80cc (patch) | |
tree | ff57b20febf3513d7f7b6bcb50924843753ca9c6 /src/transmission.zig | |
parent | 3bd3f432a95da405634cdbd2a662d79a3a5ba7af (diff) | |
download | zmission-6eaf6a8f3f3880372bdfa0027805213d109a80cc.tar.gz |
allow getting all fields
Diffstat (limited to 'src/transmission.zig')
-rw-r--r-- | src/transmission.zig | 14 |
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, }, }, }; |