╭ changed ─────────────╮ │src/ui/Repo/Issues.zig│ ╰──────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────╮ │30 // window), mirrored into the url. │ │31 selected_id: []const u8, │ │32 issues: []const IssueWithId, │ │33 -// the id of the previous window's first issue ("" = the bare first window), or │ │34 -// null when this window is already the first. │ │33 +// the id of the previous window's first issue, or null when this window is │ │34 +// already the first. │ │35 prev_id: ?[]const u8, │ │36 // the id of the next window's first issue, or null when this is the last window.│ │37 next_id: ?[]const u8, │ ╰─────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │137 const rank = try issue_id_set.rank(&order_key); │ │138 if (rank > 0) { │ │139 const prev_rank = rank -| page_size; │ │140 - if (prev_rank == 0) { │ │141 - prev_id = ""; │ │142 - } else { │ │143 - const kv = try issue_id_set.getIndexKeyValuePair(@intCast(prev_rank)) orelse return error.NotFound;│ │144 - var prev_key: [@sizeOf(u64) + evt.event_id_size]u8 = undefined; │ │145 - _ = try kv.key_cursor.readBytes(&prev_key); │ │146 - const prev_hex = std.fmt.bytesToHex(prev_key[@sizeOf(u64)..].*, .lower); │ │147 - prev_id = try aa.dupe(u8, &prev_hex); │ │148 - } │ │140 + const kv = try issue_id_set.getIndexKeyValuePair(@intCast(prev_rank)) orelse return error.NotFound; │ │141 + var prev_key: [@sizeOf(u64) + evt.event_id_size]u8 = undefined; │ │142 + _ = try kv.key_cursor.readBytes(&prev_key); │ │143 + const prev_hex = std.fmt.bytesToHex(prev_key[@sizeOf(u64)..].*, .lower); │ │144 + prev_id = try aa.dupe(u8, &prev_hex); │ │145 } │ │146 │ │147 break :blk try issue_id_set.iteratorFrom(&order_key); │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯