╭──────────╮ │← previous│ ╰──────────╯ ╭ changed ────╮ │src/event.zig│ ╰─────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │471 const event_id_to_issue = try DB.HashMap(.read_write).init(event_id_to_issue_cursor);│ │472 │ │478 - if (event.data) |data| { │ │473 + if (issue_data_maybe) |issue_data| { │ │474 const issue_cursor = try event_id_to_issue.putCursor(issue_key); │ │475 const issue = try DB.HashMap(.read_write).init(issue_cursor); │ │481 - try upsert(DB, repo_opts.hash, issue, EventData.Issue, data.issue); │ │476 + try upsert(DB, repo_opts.hash, issue, EventData.Issue, issue_data); │ │477 } else { │ │478 if (!try event_id_to_issue.remove(issue_key)) return error.EventNotFound; │ │479 } │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ─────────╮ │src/test/event.zig│ ╰──────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────╮ │47 const events_to_consume = [_]evt.Event{ │ │48 .{ │ │49 .id = std.fmt.bytesToHex(first_event_id, .lower), │ │50 - .kind = .issue, │ │50 .data = .{ │ │51 .issue = .{ │ │52 .title = "Login form clears password on validation error",│ ╰──────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────╮ │58 // this event edits the previous one because it has the same id │ │59 .{ │ │60 .id = std.fmt.bytesToHex(first_event_id, .lower), │ │62 - .kind = .issue, │ │61 .data = .{ │ │62 .issue = .{ │ │63 .title = "Login form clears password on validation error",│ ╰──────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────╮ │68 }, │ │69 .{ │ │70 .id = std.fmt.bytesToHex(evt.randomId(prng.random()), .lower), │ │73 - .kind = .issue, │ │71 .data = .{ │ │72 .issue = .{ │ │73 .title = "Search results ignore archived project filter",│ ╰─────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────╮ │78 }, │ │79 .{ │ │80 .id = std.fmt.bytesToHex(evt.randomId(prng.random()), .lower), │ │84 - .kind = .issue, │ │81 .data = .{ │ │82 .issue = .{ │ │83 .title = "Issue list does not persist selected sort order",│ ╰───────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │150 const first_issue = try evt.EventData.read(Repo.DB, repo_opts.hash, arena.allocator(), first_issue_map, .issue); │ │151 │ │152 // the description was correctly edited │ │157 - try std.testing.expectEqualStrings(events_to_consume[1].data.?.issue.description, first_issue.issue.description);│ │153 + try std.testing.expectEqualStrings(events_to_consume[1].data.issue.?.description, first_issue.issue.description);│ │154 │ │155 // the tags were correctly edited │ │160 - try std.testing.expectEqualStrings(events_to_consume[1].data.?.issue.tags, first_issue.issue.tags); │ │156 + try std.testing.expectEqualStrings(events_to_consume[1].data.issue.?.tags, first_issue.issue.tags); │ │157 } │ │158 │ │159 // │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────╮ │163 const events_to_consume2 = [_]evt.Event{ │ │164 .{ │ │165 .id = std.fmt.bytesToHex(evt.randomId(prng.random()), .lower), │ │170 - .kind = .issue, │ │166 .data = .{ │ │167 .issue = .{ │ │168 .title = "Double clicking causes the form to submit twice",│ ╰────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │286 const first_issue = try evt.EventData.read(Repo.DB, repo_opts.hash, arena.allocator(), first_issue_map, .issue); │ │287 │ │288 // the description is no longer edited │ │294 - try std.testing.expectEqualStrings(events_to_consume[0].data.?.issue.description, first_issue.issue.description); │ │289 + try std.testing.expectEqualStrings(events_to_consume[0].data.issue.?.description, first_issue.issue.description); │ │290 │ │291 // the tags are no longer edited │ │297 - try std.testing.expectEqualStrings(events_to_consume[0].data.?.issue.tags, first_issue.issue.tags); │ │292 + try std.testing.expectEqualStrings(events_to_consume[0].data.issue.?.tags, first_issue.issue.tags); │ │293 │ │294 // an event added by the second push is no longer there because it was wiped out by the rebase │ │295 try std.testing.expect(null == try event_id_to_issue.getCursor(hash.hashInt(repo_opts.hash, &events_to_consume2[0].id)));│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────╮ │403 const events_to_consume = [_]evt.Event{ │ │404 .{ │ │405 .id = std.fmt.bytesToHex(evt.randomId(prng.random()), .lower), │ │411 - .kind = .issue, │ │406 .data = .{ │ │407 .issue = .{ │ │408 .title = "Login form clears password on validation error",│ ╰───────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────╮ │413 }, │ │414 .{ │ │415 .id = std.fmt.bytesToHex(evt.randomId(prng.random()), .lower), │ │422 - .kind = .issue, │ │416 .data = .{ │ │417 .issue = .{ │ │418 .title = "Search results ignore archived project filter",│ ╰──────────────────────────────────────────────────────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯