diff options
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, }, }, }; |