{
 "merge_request": {
  "id": 183,
  "iid": 1,
  "project_id": 76,
  "title": "First unit tests",
  "description": "Bugs that still remain:\n- [x] The socketaddr factory (DNS lookup) does not yet seam to be fully functional.\n- [x] UDP socket test needs to pass\n- [x] TCP socket test needs to pass\n- [x] Unit Test for socketaddr Factory lookups\n- [x] Segfault at test shutdown needs to be fixed.\n- [x] fcntl needs to be checked for correct flag retuns",
  "state": "merged",
  "created_at": "2022-12-08T12:54:47.372Z",
  "updated_at": "2023-02-26T20:44:38.363Z",
  "merged_by": {
   "id": 30,
   "username": "benbe",
   "public_email": "",
   "name": "Benny Baumann",
   "state": "active",
   "locked": false,
   "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
   "web_url": "https://git.chaotikum.org/benbe"
  },
  "merge_user": {
   "id": 30,
   "username": "benbe",
   "public_email": "",
   "name": "Benny Baumann",
   "state": "active",
   "locked": false,
   "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
   "web_url": "https://git.chaotikum.org/benbe"
  },
  "merged_at": "2023-02-26T20:44:38.374Z",
  "closed_by": null,
  "closed_at": null,
  "target_branch": "master",
  "source_branch": "first_unit_tests",
  "user_notes_count": 47,
  "upvotes": 0,
  "downvotes": 0,
  "author": {
   "id": 32,
   "username": "doralitze",
   "public_email": "",
   "name": "Leon Dietrich",
   "state": "active",
   "locked": false,
   "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
   "web_url": "https://git.chaotikum.org/doralitze"
  },
  "assignees": [
   {
    "id": 32,
    "username": "doralitze",
    "public_email": "",
    "name": "Leon Dietrich",
    "state": "active",
    "locked": false,
    "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
    "web_url": "https://git.chaotikum.org/doralitze"
   }
  ],
  "assignee": {
   "id": 32,
   "username": "doralitze",
   "public_email": "",
   "name": "Leon Dietrich",
   "state": "active",
   "locked": false,
   "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
   "web_url": "https://git.chaotikum.org/doralitze"
  },
  "reviewers": [
   {
    "id": 30,
    "username": "benbe",
    "public_email": "",
    "name": "Benny Baumann",
    "state": "active",
    "locked": false,
    "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
    "web_url": "https://git.chaotikum.org/benbe"
   }
  ],
  "source_project_id": 76,
  "target_project_id": 76,
  "labels": [],
  "draft": false,
  "imported": false,
  "imported_from": "none",
  "work_in_progress": false,
  "milestone": null,
  "merge_when_pipeline_succeeds": false,
  "merge_status": "can_be_merged",
  "detailed_merge_status": "not_open",
  "merge_after": null,
  "sha": "fa2c0da30d81e9c221c06bdc71fd14947642191b",
  "merge_commit_sha": "fa2c0da30d81e9c221c06bdc71fd14947642191b",
  "squash_commit_sha": null,
  "discussion_locked": null,
  "should_remove_source_branch": null,
  "force_remove_source_branch": true,
  "prepared_at": "2022-12-08T12:54:47.372Z",
  "reference": "!1",
  "references": {
   "short": "!1",
   "relative": "!1",
   "full": "ReadMailReallyFast/code!1"
  },
  "web_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1",
  "time_stats": {
   "time_estimate": 0,
   "total_time_spent": 0,
   "human_time_estimate": null,
   "human_total_time_spent": null
  },
  "squash": false,
  "squash_on_merge": false,
  "task_completion_status": {
   "count": 6,
   "completed_count": 6
  },
  "has_conflicts": false,
  "blocking_discussions_resolved": true
 },
 "discussions": [
  {
   "id": "cc81642b8003375cdace7b2b21d13df2c0f6b456",
   "reply_id": "cc81642b8003375cdace7b2b21d13df2c0f6b456",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": false,
   "expanded": true,
   "for_commit": false,
   "individual_note": true,
   "resolvable": false,
   "discussion_path": null,
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/cc81642b8003375cdace7b2b21d13df2c0f6b456/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=cc81642b8003375cdace7b2b21d13df2c0f6b456&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "notes": [
    {
     "id": "1798",
     "type": null,
     "author": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T12:54:47.541Z",
     "updated_at": "2022-12-08T12:54:47.543Z",
     "system": true,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "resolvable": false,
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "requested review from @benbe",
     "note_html": "<p data-sourcepos=\"1:1-1:28\" dir=\"auto\">requested review from <a href=\"/benbe\" data-reference-type=\"user\" data-user=\"30\" data-container=\"body\" data-placement=\"top\" class=\"gfm gfm-project_member js-user-link\" title=\"Benny Baumann\">@benbe</a></p>",
     "body_first_line_html": "<p>requested review from <a href=\"/benbe\" data-reference-type=\"user\" data-user=\"30\" class=\"gfm gfm-project_member js-user-link\" title=\"Benny Baumann\">@benbe</a></p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "suggestions": [],
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "user",
     "is_noteable_author": true,
     "discussion_id": "cc81642b8003375cdace7b2b21d13df2c0f6b456",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1798",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "path": "/ReadMailReallyFast/code/notes/1798"
    }
   ]
  },
  {
   "id": "9b3026f18053c396f1e6ac4286b22688437930ab",
   "reply_id": "9b3026f18053c396f1e6ac4286b22688437930ab",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": false,
   "expanded": true,
   "for_commit": false,
   "individual_note": true,
   "resolvable": false,
   "discussion_path": null,
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/9b3026f18053c396f1e6ac4286b22688437930ab/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=9b3026f18053c396f1e6ac4286b22688437930ab&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "notes": [
    {
     "id": "1799",
     "type": null,
     "author": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T12:54:47.586Z",
     "updated_at": "2022-12-08T12:54:47.615Z",
     "system": true,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "resolvable": false,
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "assigned to @doralitze",
     "note_html": "<p data-sourcepos=\"1:1-1:22\" dir=\"auto\">assigned to <a href=\"/doralitze\" data-reference-type=\"user\" data-user=\"32\" data-container=\"body\" data-placement=\"top\" class=\"gfm gfm-project_member js-user-link\" title=\"Leon Dietrich\">@doralitze</a></p>",
     "body_first_line_html": "<p>assigned to <a href=\"/doralitze\" data-reference-type=\"user\" data-user=\"32\" class=\"gfm gfm-project_member js-user-link\" title=\"Leon Dietrich\">@doralitze</a></p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "suggestions": [],
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "user",
     "is_noteable_author": true,
     "discussion_id": "9b3026f18053c396f1e6ac4286b22688437930ab",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1799",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "path": "/ReadMailReallyFast/code/notes/1799"
    }
   ]
  },
  {
   "id": "5337a47605f94cf5287c7478cc23c02ad00d3c0f",
   "reply_id": "5337a47605f94cf5287c7478cc23c02ad00d3c0f",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": true,
   "expanded": false,
   "for_commit": false,
   "individual_note": false,
   "resolvable": true,
   "active": false,
   "line_code": "3a76adfe8176df64a1d20d3a5e21bcfacd9241f9_167_166",
   "diff_file": {
    "content_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "submodule": false,
    "submodule_link": null,
    "submodule_tree_url": null,
    "submodule_compare": null,
    "old_path_html": "src/lib/nccpp/constants.hpp",
    "new_path_html": "src/lib/nccpp/constants.hpp",
    "blob": {
     "id": "38e36819170b3442f74c1fc3895c8d92a077dd1c",
     "path": "src/lib/nccpp/constants.hpp",
     "name": "constants.hpp",
     "mode": "100644",
     "readable_text": true,
     "icon": "doc-text"
    },
    "can_modify_blob": false,
    "file_identifier_hash": "9a1752a29a33694be61014d8e8a7b0b02544c4ee",
    "file_hash": "3a76adfe8176df64a1d20d3a5e21bcfacd9241f9",
    "file_path": "src/lib/nccpp/constants.hpp",
    "old_path": "src/lib/nccpp/constants.hpp",
    "new_path": "src/lib/nccpp/constants.hpp",
    "new_file": false,
    "renamed_file": false,
    "deleted_file": false,
    "diff_refs": {
     "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
     "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
     "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422"
    },
    "stored_externally": null,
    "external_storage": null,
    "mode_changed": false,
    "a_mode": "100644",
    "b_mode": "100644",
    "viewer": {
     "name": "text",
     "error": null,
     "error_message": null,
     "collapsed": false,
     "expandable": true,
     "generated": null,
     "whitespace_only": null
    },
    "alternate_viewer": null,
    "old_size": 7519,
    "new_size": 7535
   },
   "position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "ba78456de512a3969c166d3d9df87da66044b542",
    "old_path": "src/lib/nccpp/constants.hpp",
    "new_path": "src/lib/nccpp/constants.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 166,
    "line_range": {
     "start": {
      "line_code": "3a76adfe8176df64a1d20d3a5e21bcfacd9241f9_167_166",
      "type": "new",
      "old_line": null,
      "new_line": 166
     },
     "end": {
      "line_code": "3a76adfe8176df64a1d20d3a5e21bcfacd9241f9_167_166",
      "type": "new",
      "old_line": null,
      "new_line": 166
     }
    }
   },
   "original_position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "old_path": "src/lib/nccpp/constants.hpp",
    "new_path": "src/lib/nccpp/constants.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 166,
    "line_range": {
     "start": {
      "line_code": "3a76adfe8176df64a1d20d3a5e21bcfacd9241f9_167_166",
      "type": "new",
      "old_line": null,
      "new_line": 166
     },
     "end": {
      "line_code": "3a76adfe8176df64a1d20d3a5e21bcfacd9241f9_167_166",
      "type": "new",
      "old_line": null,
      "new_line": 166
     }
    }
   },
   "discussion_path": "/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=527#3a76adfe8176df64a1d20d3a5e21bcfacd9241f9_167_166",
   "resolved": true,
   "resolved_by_push": false,
   "resolved_by": {
    "id": 32,
    "username": "doralitze",
    "public_email": "",
    "name": "Leon Dietrich",
    "state": "active",
    "locked": false,
    "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
    "show_status": false,
    "path": "/doralitze",
    "bot": false,
    "user_type": "human"
   },
   "resolved_at": "2022-12-08T16:00:31.244Z",
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/5337a47605f94cf5287c7478cc23c02ad00d3c0f/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=5337a47605f94cf5287c7478cc23c02ad00d3c0f&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "truncated_diff_lines_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/5337a47605f94cf5287c7478cc23c02ad00d3c0f",
   "notes": [
    {
     "id": "1800",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:16:02.601Z",
     "updated_at": "2022-12-08T15:16:02.601Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "ba78456de512a3969c166d3d9df87da66044b542",
      "old_path": "src/lib/nccpp/constants.hpp",
      "new_path": "src/lib/nccpp/constants.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 166,
      "line_range": {
       "start": {
        "line_code": "3a76adfe8176df64a1d20d3a5e21bcfacd9241f9_167_166",
        "type": "new",
        "old_line": null,
        "new_line": 166
       },
       "end": {
        "line_code": "3a76adfe8176df64a1d20d3a5e21bcfacd9241f9_167_166",
        "type": "new",
        "old_line": null,
        "new_line": 166
       }
      }
     },
     "resolvable": true,
     "resolved": true,
     "resolved_by": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "show_status": false,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "resolved_at": "2022-12-08T16:00:31.244Z",
     "suggestions": [
      {
       "id": 10,
       "appliable": false,
       "applied": true,
       "diff_lines": [
        {
         "line_code": null,
         "type": "match",
         "old_line": null,
         "new_line": null,
         "text": "@@ -166 +166",
         "meta_data": {
          "old_pos": 166,
          "new_pos": 166
         },
         "rich_text": "@@ -166 +166",
         "can_receive_suggestion": true
        },
        {
         "line_code": null,
         "type": "old",
         "old_line": 166,
         "new_line": null,
         "text": "-//int constexpr event{KEY_EVENT}; // TODO fimxe",
         "meta_data": null,
         "rich_text": "-<span class=\"line\" data-lang=\"cpp\"><span class=\"c1\">//int constexpr event{KEY_EVENT}; // TODO fi<span class=\"idiff left right deletion\">m</span>xe</span></span>\n",
         "can_receive_suggestion": false
        },
        {
         "line_code": null,
         "type": "new",
         "old_line": null,
         "new_line": 166,
         "text": "+//int constexpr event{KEY_EVENT}; // TODO fixme",
         "meta_data": null,
         "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"c1\">//int constexpr event{KEY_EVENT}; // TODO fix<span class=\"idiff left right addition\">m</span>e</span></span>\n",
         "can_receive_suggestion": true
        }
       ],
       "current_user": {
        "can_apply": false
       },
       "inapplicable_reason": "You don't have write access to the source branch."
      }
     ],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "```suggestion:-0+0\n//int constexpr event{KEY_EVENT}; // TODO fixme\n```\n\nShould also include, what exactly should be fixed.",
     "note_html": "<div class=\"gl-relative markdown-code-block js-markdown-code\"><pre data-sourcepos=\"1:1-3:3\" data-canonical-lang=\"suggestion\" data-lang-params=\"-0+0\" class=\"code highlight js-syntax-highlight language-suggestion\" lang=\"suggestion\" v-pre=\"true\"><code class=\"js-render-suggestion\"><span id=\"LC1\" class=\"line\" lang=\"suggestion\">//int constexpr event{KEY_EVENT}; // TODO fixme</span></code></pre></div>\n<p data-sourcepos=\"5:1-5:50\" dir=\"auto\">Should also include, what exactly should be fixed.</p>",
     "body_first_line_html": "<pre class=\"code highlight js-syntax-highlight language-suggestion\" lang=\"suggestion\"><code class=\"js-render-suggestion\"><span class=\"line\" lang=\"suggestion\">//int constexpr event{KEY_EVENT}; // TODO fixme</span></code></pre>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "5337a47605f94cf5287c7478cc23c02ad00d3c0f",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1800",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/5337a47605f94cf5287c7478cc23c02ad00d3c0f/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=5337a47605f94cf5287c7478cc23c02ad00d3c0f&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1800/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1800"
    },
    {
     "id": "1834",
     "type": "DiffNote",
     "author": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:29:59.086Z",
     "updated_at": "2022-12-08T15:29:59.086Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "ba78456de512a3969c166d3d9df87da66044b542",
      "old_path": "src/lib/nccpp/constants.hpp",
      "new_path": "src/lib/nccpp/constants.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 166,
      "line_range": {
       "start": {
        "line_code": "3a76adfe8176df64a1d20d3a5e21bcfacd9241f9_167_166",
        "type": "new",
        "old_line": null,
        "new_line": 166
       },
       "end": {
        "line_code": "3a76adfe8176df64a1d20d3a5e21bcfacd9241f9_167_166",
        "type": "new",
        "old_line": null,
        "new_line": 166
       }
      }
     },
     "resolvable": true,
     "resolved": true,
     "resolved_by": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "show_status": false,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "resolved_at": "2022-12-08T16:00:31.244Z",
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "The issue that needs to be fixed is that `KEY_EVENT` seams to be removed from the library.",
     "note_html": "<p data-sourcepos=\"1:1-1:90\" dir=\"auto\">The issue that needs to be fixed is that <code data-sourcepos=\"1:43-1:51\">KEY_EVENT</code> seams to be removed from the library.</p>",
     "body_first_line_html": "<p>The issue that needs to be fixed is that <code>KEY_EVENT</code> seams to be removed from the library.</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": true,
     "discussion_id": "5337a47605f94cf5287c7478cc23c02ad00d3c0f",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1834",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/5337a47605f94cf5287c7478cc23c02ad00d3c0f/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=5337a47605f94cf5287c7478cc23c02ad00d3c0f&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1834/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1834"
    },
    {
     "id": "1847",
     "type": "DiffNote",
     "author": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T16:00:32.046Z",
     "updated_at": "2022-12-08T16:00:32.046Z",
     "system": true,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "ba78456de512a3969c166d3d9df87da66044b542",
      "old_path": "src/lib/nccpp/constants.hpp",
      "new_path": "src/lib/nccpp/constants.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 166,
      "line_range": {
       "start": {
        "line_code": "3a76adfe8176df64a1d20d3a5e21bcfacd9241f9_167_166",
        "type": "new",
        "old_line": null,
        "new_line": 166
       },
       "end": {
        "line_code": "3a76adfe8176df64a1d20d3a5e21bcfacd9241f9_167_166",
        "type": "new",
        "old_line": null,
        "new_line": 166
       }
      }
     },
     "resolvable": false,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "changed this line in [version 5 of the diff](/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=528&start_sha=ba78456de512a3969c166d3d9df87da66044b542#3a76adfe8176df64a1d20d3a5e21bcfacd9241f9_166_166)",
     "note_html": "<p data-sourcepos=\"1:1-1:207\" dir=\"auto\">changed this line in <a data-sourcepos=\"1:22-1:207\" href=\"/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=528&amp;start_sha=ba78456de512a3969c166d3d9df87da66044b542#3a76adfe8176df64a1d20d3a5e21bcfacd9241f9_166_166\">version 5 of the diff</a></p>",
     "body_first_line_html": "<p>changed this line in version 5 of the diff</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "pencil",
     "outdated_line_change_path": "/ReadMailReallyFast/code/notes/1847/outdated_line_change",
     "is_noteable_author": true,
     "discussion_id": "5337a47605f94cf5287c7478cc23c02ad00d3c0f",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1847",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "path": "/ReadMailReallyFast/code/notes/1847"
    }
   ],
   "positions": [],
   "line_codes": []
  },
  {
   "id": "c13c4429757fec7e51e2c4024863e0e71be57150",
   "reply_id": "c13c4429757fec7e51e2c4024863e0e71be57150",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": true,
   "expanded": true,
   "for_commit": false,
   "individual_note": false,
   "resolvable": true,
   "truncated_diff_lines": [
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_30_30",
     "type": null,
     "old_line": 30,
     "new_line": 30,
     "text": " void rmrf::ev::loop() {",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"><span class=\"kt\">void</span> <span class=\"n\">rmrf</span><span class=\"o\">::</span><span class=\"n\">ev</span><span class=\"o\">::</span><span class=\"n\">loop</span><span class=\"p\">()</span> <span class=\"p\">{</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_31_31",
     "type": null,
     "old_line": 31,
     "new_line": 31,
     "text": "     ::ev::default_loop defloop;",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\">    <span class=\"o\">::</span><span class=\"n\">ev</span><span class=\"o\">::</span><span class=\"n\">default_loop</span> <span class=\"n\">defloop</span><span class=\"p\">;</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_32_32",
     "type": null,
     "old_line": 32,
     "new_line": 32,
     "text": " ",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_33_33",
     "type": null,
     "old_line": 33,
     "new_line": 33,
     "text": "     auto w = std::make_shared<stdin_waiter>();",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\">    <span class=\"k\">auto</span> <span class=\"n\">w</span> <span class=\"o\">=</span> <span class=\"n\">std</span><span class=\"o\">::</span><span class=\"n\">make_shared</span><span class=\"o\">&lt;</span><span class=\"n\">stdin_waiter</span><span class=\"o\">&gt;</span><span class=\"p\">();</span></span>\n",
     "can_receive_suggestion": true
    }
   ],
   "active": false,
   "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_33_33",
   "diff_file": {
    "content_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "submodule": false,
    "submodule_link": null,
    "submodule_tree_url": null,
    "submodule_compare": null,
    "old_path_html": "src/mumta/evloop.cpp",
    "new_path_html": "src/mumta/evloop.cpp",
    "blob": {
     "id": "b2c8c02b05b5962429a75fa4d82dd961adfa34b3",
     "path": "src/mumta/evloop.cpp",
     "name": "evloop.cpp",
     "mode": "100644",
     "readable_text": true,
     "icon": "doc-text"
    },
    "can_modify_blob": false,
    "file_identifier_hash": "3f0eba6b3f81d43b9e409ed5a480f910ef2748d0",
    "file_hash": "3d6217278dad6c5286a05b9accc6ba8a34886dc2",
    "file_path": "src/mumta/evloop.cpp",
    "old_path": "src/mumta/evloop.cpp",
    "new_path": "src/mumta/evloop.cpp",
    "new_file": false,
    "renamed_file": false,
    "deleted_file": false,
    "diff_refs": {
     "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
     "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
     "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422"
    },
    "stored_externally": null,
    "external_storage": null,
    "mode_changed": false,
    "a_mode": "100644",
    "b_mode": "100644",
    "viewer": {
     "name": "text",
     "error": null,
     "error_message": null,
     "collapsed": false,
     "expandable": true,
     "generated": null,
     "whitespace_only": null
    },
    "alternate_viewer": null,
    "old_size": 718,
    "new_size": 1187
   },
   "position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "7962e9e4a88484b5bc782c339a641ce6c1303461",
    "old_path": "src/mumta/evloop.cpp",
    "new_path": "src/mumta/evloop.cpp",
    "position_type": "text",
    "old_line": 33,
    "new_line": 33,
    "line_range": {
     "start": {
      "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_33_33",
      "type": "expanded",
      "old_line": 33,
      "new_line": 33
     },
     "end": {
      "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_33_33",
      "type": "expanded",
      "old_line": 33,
      "new_line": 33
     }
    }
   },
   "original_position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "old_path": "src/mumta/evloop.cpp",
    "new_path": "src/mumta/evloop.cpp",
    "position_type": "text",
    "old_line": 33,
    "new_line": 33,
    "line_range": {
     "start": {
      "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_33_33",
      "type": "expanded",
      "old_line": 33,
      "new_line": 33
     },
     "end": {
      "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_33_33",
      "type": "expanded",
      "old_line": 33,
      "new_line": 33
     }
    }
   },
   "discussion_path": "/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=528#3d6217278dad6c5286a05b9accc6ba8a34886dc2_33_33",
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/c13c4429757fec7e51e2c4024863e0e71be57150/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=c13c4429757fec7e51e2c4024863e0e71be57150&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "notes": [
    {
     "id": "1801",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:16:02.703Z",
     "updated_at": "2022-12-08T15:16:02.703Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "7962e9e4a88484b5bc782c339a641ce6c1303461",
      "old_path": "src/mumta/evloop.cpp",
      "new_path": "src/mumta/evloop.cpp",
      "position_type": "text",
      "old_line": 33,
      "new_line": 33,
      "line_range": {
       "start": {
        "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_33_33",
        "type": "expanded",
        "old_line": 33,
        "new_line": 33
       },
       "end": {
        "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_33_33",
        "type": "expanded",
        "old_line": 33,
        "new_line": 33
       }
      }
     },
     "resolvable": true,
     "resolved": false,
     "resolved_by": null,
     "resolved_at": null,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "Having that free-floating waiter seems kinda strange to me.",
     "note_html": "<p data-sourcepos=\"1:1-1:59\" dir=\"auto\">Having that free-floating waiter seems kinda strange to me.</p>",
     "body_first_line_html": "<p>Having that free-floating waiter seems kinda strange to me.</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "c13c4429757fec7e51e2c4024863e0e71be57150",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1801",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/c13c4429757fec7e51e2c4024863e0e71be57150/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=c13c4429757fec7e51e2c4024863e0e71be57150&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1801/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1801"
    },
    {
     "id": "1835",
     "type": "DiffNote",
     "author": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:31:56.341Z",
     "updated_at": "2022-12-08T15:31:56.341Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "7962e9e4a88484b5bc782c339a641ce6c1303461",
      "old_path": "src/mumta/evloop.cpp",
      "new_path": "src/mumta/evloop.cpp",
      "position_type": "text",
      "old_line": 33,
      "new_line": 33,
      "line_range": {
       "start": {
        "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_33_33",
        "type": "expanded",
        "old_line": 33,
        "new_line": 33
       },
       "end": {
        "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_33_33",
        "type": "expanded",
        "old_line": 33,
        "new_line": 33
       }
      }
     },
     "resolvable": true,
     "resolved": false,
     "resolved_by": null,
     "resolved_at": null,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "As it seams to me. As I recall the reason why we had this line was due to us testing the event loop system while attending Nook 2019 and it might be an artifact of that debugging session.",
     "note_html": "<p data-sourcepos=\"1:1-1:187\" dir=\"auto\">As it seams to me. As I recall the reason why we had this line was due to us testing the event loop system while attending Nook 2019 and it might be an artifact of that debugging session.</p>",
     "body_first_line_html": "<p>As it seams to me. As I recall the reason why we had this line was due to us testing the event loop system while attending...</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": true,
     "discussion_id": "c13c4429757fec7e51e2c4024863e0e71be57150",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1835",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/c13c4429757fec7e51e2c4024863e0e71be57150/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=c13c4429757fec7e51e2c4024863e0e71be57150&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1835/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1835"
    },
    {
     "id": "1864",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T19:46:22.695Z",
     "updated_at": "2022-12-08T19:46:22.695Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "7962e9e4a88484b5bc782c339a641ce6c1303461",
      "old_path": "src/mumta/evloop.cpp",
      "new_path": "src/mumta/evloop.cpp",
      "position_type": "text",
      "old_line": 33,
      "new_line": 33,
      "line_range": {
       "start": {
        "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_33_33",
        "type": "expanded",
        "old_line": 33,
        "new_line": 33
       },
       "end": {
        "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_33_33",
        "type": "expanded",
        "old_line": 33,
        "new_line": 33
       }
      }
     },
     "resolvable": true,
     "resolved": false,
     "resolved_by": null,
     "resolved_at": null,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "Likely, as there's no reference using it. But given `defloop` is more or less global state we may need to check if this implicitly pushes callbacks for stdin onto the event loop (to wait for input from stdin). Though even then this lacks any callbacks for handling such input \u2026",
     "note_html": "<p data-sourcepos=\"1:1-1:279\" dir=\"auto\">Likely, as there's no reference using it. But given <code data-sourcepos=\"1:54-1:60\">defloop</code> is more or less global state we may need to check if this implicitly pushes callbacks for stdin onto the event loop (to wait for input from stdin). Though even then this lacks any callbacks for handling such input \u2026</p>",
     "body_first_line_html": "<p>Likely, as there's no reference using it. But given <code>defloop</code> is more or less global state we may need to check if this impl...</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "c13c4429757fec7e51e2c4024863e0e71be57150",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1864",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/c13c4429757fec7e51e2c4024863e0e71be57150/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=c13c4429757fec7e51e2c4024863e0e71be57150&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1864/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1864"
    },
    {
     "id": "1873",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2023-01-03T21:29:24.044Z",
     "updated_at": "2023-01-03T21:29:24.044Z",
     "system": true,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "7962e9e4a88484b5bc782c339a641ce6c1303461",
      "old_path": "src/mumta/evloop.cpp",
      "new_path": "src/mumta/evloop.cpp",
      "position_type": "text",
      "old_line": 33,
      "new_line": 33,
      "line_range": {
       "start": {
        "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_33_33",
        "type": "expanded",
        "old_line": 33,
        "new_line": 33
       },
       "end": {
        "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_33_33",
        "type": "expanded",
        "old_line": 33,
        "new_line": 33
       }
      }
     },
     "resolvable": false,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "changed this line in [version 6 of the diff](/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=534&start_sha=7962e9e4a88484b5bc782c339a641ce6c1303461#3d6217278dad6c5286a05b9accc6ba8a34886dc2_33_33)",
     "note_html": "<p data-sourcepos=\"1:1-1:205\" dir=\"auto\">changed this line in <a data-sourcepos=\"1:22-1:205\" href=\"/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=534&amp;start_sha=7962e9e4a88484b5bc782c339a641ce6c1303461#3d6217278dad6c5286a05b9accc6ba8a34886dc2_33_33\">version 6 of the diff</a></p>",
     "body_first_line_html": "<p>changed this line in version 6 of the diff</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "pencil",
     "is_noteable_author": false,
     "discussion_id": "c13c4429757fec7e51e2c4024863e0e71be57150",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1873",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "path": "/ReadMailReallyFast/code/notes/1873"
    }
   ],
   "positions": [],
   "line_codes": []
  },
  {
   "id": "17a475eaaf5dc0b0e828567039a02e6af8b60495",
   "reply_id": "17a475eaaf5dc0b0e828567039a02e6af8b60495",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": true,
   "expanded": true,
   "for_commit": false,
   "individual_note": false,
   "resolvable": true,
   "truncated_diff_lines": [
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_34_34",
     "type": null,
     "old_line": 34,
     "new_line": 34,
     "text": " ",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_35_35",
     "type": null,
     "old_line": 35,
     "new_line": 35,
     "text": "     defloop.run(0);",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\">    <span class=\"n\">defloop</span><span class=\"p\">.</span><span class=\"n\">run</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">);</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_36_36",
     "type": null,
     "old_line": 36,
     "new_line": 36,
     "text": " }",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"><span class=\"p\">}</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_37",
     "type": "new",
     "old_line": null,
     "new_line": 37,
     "text": "+",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_38",
     "type": "new",
     "old_line": null,
     "new_line": 38,
     "text": "+void stop_default_loop_cb(EV_P_ ev_async*, int) {",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"kt\">void</span> <span class=\"nf\">stop_default_loop_cb</span><span class=\"p\">(</span><span class=\"n\">EV_P_</span> <span class=\"n\">ev_async</span><span class=\"o\">*</span><span class=\"p\">,</span> <span class=\"kt\">int</span><span class=\"p\">)</span> <span class=\"p\">{</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_39",
     "type": "new",
     "old_line": null,
     "new_line": 39,
     "text": "+    ::ev::loop_ref defloop = ::ev::get_default_loop();",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"o\">::</span><span class=\"n\">ev</span><span class=\"o\">::</span><span class=\"n\">loop_ref</span> <span class=\"n\">defloop</span> <span class=\"o\">=</span> <span class=\"o\">::</span><span class=\"n\">ev</span><span class=\"o\">::</span><span class=\"n\">get_default_loop</span><span class=\"p\">();</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_40",
     "type": "new",
     "old_line": null,
     "new_line": 40,
     "text": "+    defloop.break_loop();",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"n\">defloop</span><span class=\"p\">.</span><span class=\"n\">break_loop</span><span class=\"p\">();</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_41",
     "type": "new",
     "old_line": null,
     "new_line": 41,
     "text": "+}",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"p\">}</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_42",
     "type": "new",
     "old_line": null,
     "new_line": 42,
     "text": "+",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_43",
     "type": "new",
     "old_line": null,
     "new_line": 43,
     "text": "+void rmrf::ev::stop() {",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"kt\">void</span> <span class=\"n\">rmrf</span><span class=\"o\">::</span><span class=\"n\">ev</span><span class=\"o\">::</span><span class=\"n\">stop</span><span class=\"p\">()</span> <span class=\"p\">{</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_44",
     "type": "new",
     "old_line": null,
     "new_line": 44,
     "text": "+    ::ev::loop_ref defloop = ::ev::get_default_loop();",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"o\">::</span><span class=\"n\">ev</span><span class=\"o\">::</span><span class=\"n\">loop_ref</span> <span class=\"n\">defloop</span> <span class=\"o\">=</span> <span class=\"o\">::</span><span class=\"n\">ev</span><span class=\"o\">::</span><span class=\"n\">get_default_loop</span><span class=\"p\">();</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_45",
     "type": "new",
     "old_line": null,
     "new_line": 45,
     "text": "+    // We need to use the C API directly as ev++ does not yet support asynchrounous events",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"c1\">// We need to use the C API directly as ev++ does not yet support asynchrounous events</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_46",
     "type": "new",
     "old_line": null,
     "new_line": 46,
     "text": "+    ev_async stop_event;",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"n\">ev_async</span> <span class=\"n\">stop_event</span><span class=\"p\">;</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_47",
     "type": "new",
     "old_line": null,
     "new_line": 47,
     "text": "+    ev_async_init(&stop_event, stop_default_loop_cb);",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"n\">ev_async_init</span><span class=\"p\">(</span><span class=\"o\">&amp;</span><span class=\"n\">stop_event</span><span class=\"p\">,</span> <span class=\"n\">stop_default_loop_cb</span><span class=\"p\">);</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_48",
     "type": "new",
     "old_line": null,
     "new_line": 48,
     "text": "+    ev_async_start(defloop, &stop_event);",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"n\">ev_async_start</span><span class=\"p\">(</span><span class=\"n\">defloop</span><span class=\"p\">,</span> <span class=\"o\">&amp;</span><span class=\"n\">stop_event</span><span class=\"p\">);</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_49",
     "type": "new",
     "old_line": null,
     "new_line": 49,
     "text": "+    ev_async_send(defloop, &stop_event);",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"n\">ev_async_send</span><span class=\"p\">(</span><span class=\"n\">defloop</span><span class=\"p\">,</span> <span class=\"o\">&amp;</span><span class=\"n\">stop_event</span><span class=\"p\">);</span></span>\n",
     "can_receive_suggestion": true
    }
   ],
   "active": false,
   "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_49",
   "diff_file": {
    "content_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "submodule": false,
    "submodule_link": null,
    "submodule_tree_url": null,
    "submodule_compare": null,
    "old_path_html": "src/mumta/evloop.cpp",
    "new_path_html": "src/mumta/evloop.cpp",
    "blob": {
     "id": "b2c8c02b05b5962429a75fa4d82dd961adfa34b3",
     "path": "src/mumta/evloop.cpp",
     "name": "evloop.cpp",
     "mode": "100644",
     "readable_text": true,
     "icon": "doc-text"
    },
    "can_modify_blob": false,
    "file_identifier_hash": "3f0eba6b3f81d43b9e409ed5a480f910ef2748d0",
    "file_hash": "3d6217278dad6c5286a05b9accc6ba8a34886dc2",
    "file_path": "src/mumta/evloop.cpp",
    "old_path": "src/mumta/evloop.cpp",
    "new_path": "src/mumta/evloop.cpp",
    "new_file": false,
    "renamed_file": false,
    "deleted_file": false,
    "diff_refs": {
     "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
     "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
     "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422"
    },
    "stored_externally": null,
    "external_storage": null,
    "mode_changed": false,
    "a_mode": "100644",
    "b_mode": "100644",
    "viewer": {
     "name": "text",
     "error": null,
     "error_message": null,
     "collapsed": false,
     "expandable": true,
     "generated": null,
     "whitespace_only": null
    },
    "alternate_viewer": null,
    "old_size": 718,
    "new_size": 1187
   },
   "position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "7962e9e4a88484b5bc782c339a641ce6c1303461",
    "old_path": "src/mumta/evloop.cpp",
    "new_path": "src/mumta/evloop.cpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 49,
    "line_range": {
     "start": {
      "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_45",
      "type": "new",
      "old_line": null,
      "new_line": 45
     },
     "end": {
      "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_49",
      "type": "new",
      "old_line": null,
      "new_line": 49
     }
    }
   },
   "original_position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "old_path": "src/mumta/evloop.cpp",
    "new_path": "src/mumta/evloop.cpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 49,
    "line_range": {
     "start": {
      "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_45",
      "type": "new",
      "old_line": null,
      "new_line": 45
     },
     "end": {
      "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_49",
      "type": "new",
      "old_line": null,
      "new_line": 49
     }
    }
   },
   "discussion_path": "/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=528#3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_49",
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/17a475eaaf5dc0b0e828567039a02e6af8b60495/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=17a475eaaf5dc0b0e828567039a02e6af8b60495&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "notes": [
    {
     "id": "1802",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:16:02.757Z",
     "updated_at": "2022-12-08T15:16:02.757Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "7962e9e4a88484b5bc782c339a641ce6c1303461",
      "old_path": "src/mumta/evloop.cpp",
      "new_path": "src/mumta/evloop.cpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 49,
      "line_range": {
       "start": {
        "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_45",
        "type": "new",
        "old_line": null,
        "new_line": 45
       },
       "end": {
        "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_49",
        "type": "new",
        "old_line": null,
        "new_line": 49
       }
      }
     },
     "resolvable": true,
     "resolved": false,
     "resolved_by": null,
     "resolved_at": null,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "Any chance of creating our own OOP wrapper classes for this as shims we can replace with the real API once it becomes available?",
     "note_html": "<p data-sourcepos=\"1:1-1:128\" dir=\"auto\">Any chance of creating our own OOP wrapper classes for this as shims we can replace with the real API once it becomes available?</p>",
     "body_first_line_html": "<p>Any chance of creating our own OOP wrapper classes for this as shims we can replace with the real API once it becomes avai...</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "17a475eaaf5dc0b0e828567039a02e6af8b60495",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1802",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/17a475eaaf5dc0b0e828567039a02e6af8b60495/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=17a475eaaf5dc0b0e828567039a02e6af8b60495&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1802/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1802"
    },
    {
     "id": "1836",
     "type": "DiffNote",
     "author": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:33:36.934Z",
     "updated_at": "2022-12-08T15:33:36.934Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "7962e9e4a88484b5bc782c339a641ce6c1303461",
      "old_path": "src/mumta/evloop.cpp",
      "new_path": "src/mumta/evloop.cpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 49,
      "line_range": {
       "start": {
        "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_45",
        "type": "new",
        "old_line": null,
        "new_line": 45
       },
       "end": {
        "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_49",
        "type": "new",
        "old_line": null,
        "new_line": 49
       }
      }
     },
     "resolvable": true,
     "resolved": false,
     "resolved_by": null,
     "resolved_at": null,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "Do you mean our own C++ wrapper for `libev`? I don't think that would be necessary as they're other competing wrappers around and one might be better.",
     "note_html": "<p data-sourcepos=\"1:1-1:150\" dir=\"auto\">Do you mean our own C++ wrapper for <code data-sourcepos=\"1:38-1:42\">libev</code>? I don't think that would be necessary as they're other competing wrappers around and one might be better.</p>",
     "body_first_line_html": "<p>Do you mean our own C++ wrapper for <code>libev</code>? I don't think that would be necessary as they're other competing wrappers aroun...</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": true,
     "discussion_id": "17a475eaaf5dc0b0e828567039a02e6af8b60495",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1836",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/17a475eaaf5dc0b0e828567039a02e6af8b60495/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=17a475eaaf5dc0b0e828567039a02e6af8b60495&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1836/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1836"
    },
    {
     "id": "1863",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T19:43:50.479Z",
     "updated_at": "2022-12-08T19:43:50.479Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "7962e9e4a88484b5bc782c339a641ce6c1303461",
      "old_path": "src/mumta/evloop.cpp",
      "new_path": "src/mumta/evloop.cpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 49,
      "line_range": {
       "start": {
        "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_45",
        "type": "new",
        "old_line": null,
        "new_line": 45
       },
       "end": {
        "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_49",
        "type": "new",
        "old_line": null,
        "new_line": 49
       }
      }
     },
     "resolvable": true,
     "resolved": false,
     "resolved_by": null,
     "resolved_at": null,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "Not a full wrapper, but a minor supplement providing the missing stuff.\n\nIf you know/find another one that is more complete AND packaged on Debian/Ubuntu/available on (most) *BSD go ahead.\n\nPoint here is mostly about avoiding to mix API between a lib and its wrapper as this is prone to cause issues down the line. The supplement approach at least allows to keep essential changes in a central place if implementation needs to change and allows to drop things once the upstream library provides the missing interfaces (with minimal code changes).",
     "note_html": "<p data-sourcepos=\"1:1-1:71\" dir=\"auto\">Not a full wrapper, but a minor supplement providing the missing stuff.</p>\n<p data-sourcepos=\"3:1-3:115\" dir=\"auto\">If you know/find another one that is more complete AND packaged on Debian/Ubuntu/available on (most) *BSD go ahead.</p>\n<p data-sourcepos=\"5:1-5:356\" dir=\"auto\">Point here is mostly about avoiding to mix API between a lib and its wrapper as this is prone to cause issues down the line. The supplement approach at least allows to keep essential changes in a central place if implementation needs to change and allows to drop things once the upstream library provides the missing interfaces (with minimal code changes).</p>",
     "body_first_line_html": "<p>Not a full wrapper, but a minor supplement providing the missing stuff....</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "17a475eaaf5dc0b0e828567039a02e6af8b60495",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1863",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/17a475eaaf5dc0b0e828567039a02e6af8b60495/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=17a475eaaf5dc0b0e828567039a02e6af8b60495&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1863/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1863"
    },
    {
     "id": "1874",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2023-01-03T21:29:24.150Z",
     "updated_at": "2023-01-03T21:29:24.150Z",
     "system": true,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "7962e9e4a88484b5bc782c339a641ce6c1303461",
      "old_path": "src/mumta/evloop.cpp",
      "new_path": "src/mumta/evloop.cpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 49,
      "line_range": {
       "start": {
        "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_45",
        "type": "new",
        "old_line": null,
        "new_line": 45
       },
       "end": {
        "line_code": "3d6217278dad6c5286a05b9accc6ba8a34886dc2_37_49",
        "type": "new",
        "old_line": null,
        "new_line": 49
       }
      }
     },
     "resolvable": false,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "changed this line in [version 6 of the diff](/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=534&start_sha=7962e9e4a88484b5bc782c339a641ce6c1303461#3d6217278dad6c5286a05b9accc6ba8a34886dc2_49_44)",
     "note_html": "<p data-sourcepos=\"1:1-1:205\" dir=\"auto\">changed this line in <a data-sourcepos=\"1:22-1:205\" href=\"/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=534&amp;start_sha=7962e9e4a88484b5bc782c339a641ce6c1303461#3d6217278dad6c5286a05b9accc6ba8a34886dc2_49_44\">version 6 of the diff</a></p>",
     "body_first_line_html": "<p>changed this line in version 6 of the diff</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "pencil",
     "outdated_line_change_path": "/ReadMailReallyFast/code/notes/1874/outdated_line_change",
     "is_noteable_author": false,
     "discussion_id": "17a475eaaf5dc0b0e828567039a02e6af8b60495",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1874",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "path": "/ReadMailReallyFast/code/notes/1874"
    }
   ],
   "positions": [],
   "line_codes": []
  },
  {
   "id": "e99869984de945c8af831d632e355882aa0f993e",
   "reply_id": "e99869984de945c8af831d632e355882aa0f993e",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": true,
   "expanded": true,
   "for_commit": false,
   "individual_note": false,
   "resolvable": true,
   "truncated_diff_lines": [
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_4_4",
     "type": null,
     "old_line": 4,
     "new_line": 4,
     "text": " ",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_5_5",
     "type": null,
     "old_line": 5,
     "new_line": 5,
     "text": " namespace rmrf::net {",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"><span class=\"k\">namespace</span> <span class=\"n\">rmrf</span><span class=\"o\">::</span><span class=\"n\">net</span> <span class=\"p\">{</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_6_6",
     "type": null,
     "old_line": 6,
     "new_line": 6,
     "text": " ",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_7_7",
     "type": "new",
     "old_line": null,
     "new_line": 7,
     "text": "+    /**",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"cm\">/**</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_7_8",
     "type": "new",
     "old_line": null,
     "new_line": 8,
     "text": "+     * @class null_fd",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @class null_fd</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_7_9",
     "type": "new",
     "old_line": null,
     "new_line": 9,
     "text": "+     * @author leondietrich",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @author leondietrich</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_7_10",
     "type": "new",
     "old_line": null,
     "new_line": 10,
     "text": "+     * @date 07/08/21",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @date 07/08/21</span></span>\n",
     "can_receive_suggestion": true
    }
   ],
   "active": true,
   "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_9_10",
   "diff_file": {
    "content_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "submodule": false,
    "submodule_link": null,
    "submodule_tree_url": null,
    "submodule_compare": null,
    "old_path_html": "src/net/async_fd.hpp",
    "new_path_html": "src/net/async_fd.hpp",
    "blob": {
     "id": "021cbc44b20c68930eae4fed68978aac900a911d",
     "path": "src/net/async_fd.hpp",
     "name": "async_fd.hpp",
     "mode": "100644",
     "readable_text": true,
     "icon": "doc-text"
    },
    "can_modify_blob": false,
    "file_identifier_hash": "480009b87cf579e44910de5d1a5b81960547207a",
    "file_hash": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6",
    "file_path": "src/net/async_fd.hpp",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "new_file": false,
    "renamed_file": false,
    "deleted_file": false,
    "diff_refs": {
     "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
     "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
     "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422"
    },
    "stored_externally": null,
    "external_storage": null,
    "mode_changed": false,
    "a_mode": "100644",
    "b_mode": "100644",
    "viewer": {
     "name": "text",
     "error": null,
     "error_message": null,
     "collapsed": false,
     "expandable": true,
     "generated": null,
     "whitespace_only": null
    },
    "alternate_viewer": null,
    "old_size": 2010,
    "new_size": 4532
   },
   "position": {
    "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
    "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
    "head_sha": "fa2c0da30d81e9c221c06bdc71fd14947642191b",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 10,
    "line_range": {
     "start": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_7_10",
      "type": "new",
      "old_line": null,
      "new_line": 10
     },
     "end": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_7_10",
      "type": "new",
      "old_line": null,
      "new_line": 10
     }
    }
   },
   "original_position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 10,
    "line_range": {
     "start": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_7_10",
      "type": "new",
      "old_line": null,
      "new_line": 10
     },
     "end": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_7_10",
      "type": "new",
      "old_line": null,
      "new_line": 10
     }
    }
   },
   "discussion_path": "/ReadMailReallyFast/code/-/merge_requests/1/diffs#31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_9_10",
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/e99869984de945c8af831d632e355882aa0f993e/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=e99869984de945c8af831d632e355882aa0f993e&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "notes": [
    {
     "id": "1803",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:16:02.827Z",
     "updated_at": "2022-12-08T15:16:02.827Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "head_sha": "fa2c0da30d81e9c221c06bdc71fd14947642191b",
      "old_path": "src/net/async_fd.hpp",
      "new_path": "src/net/async_fd.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 10,
      "line_range": {
       "start": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_7_10",
        "type": "new",
        "old_line": null,
        "new_line": 10
       },
       "end": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_7_10",
        "type": "new",
        "old_line": null,
        "new_line": 10
       }
      }
     },
     "resolvable": true,
     "resolved": false,
     "resolved_by": null,
     "resolved_at": null,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "ISO 8601",
     "note_html": "<p data-sourcepos=\"1:1-1:8\" dir=\"auto\">ISO 8601</p>",
     "body_first_line_html": "<p>ISO 8601</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "e99869984de945c8af831d632e355882aa0f993e",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1803",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/e99869984de945c8af831d632e355882aa0f993e/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=e99869984de945c8af831d632e355882aa0f993e&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1803/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1803"
    }
   ],
   "positions": [
    {
     "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
     "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
     "head_sha": "fa2c0da30d81e9c221c06bdc71fd14947642191b",
     "old_path": "src/net/async_fd.hpp",
     "new_path": "src/net/async_fd.hpp",
     "position_type": "text",
     "old_line": null,
     "new_line": 10,
     "line_range": null
    }
   ],
   "line_codes": [
    "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_9_10"
   ]
  },
  {
   "id": "bc4db6c248dc87b37fef8f73fbc695c3a86c872a",
   "reply_id": "bc4db6c248dc87b37fef8f73fbc695c3a86c872a",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": true,
   "expanded": true,
   "for_commit": false,
   "individual_note": false,
   "resolvable": true,
   "truncated_diff_lines": [
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_12_19",
     "type": null,
     "old_line": 12,
     "new_line": 19,
     "text": "         constexpr operator int() const { return -1; }",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\">        <span class=\"k\">constexpr</span> <span class=\"k\">operator</span> <span class=\"kt\">int</span><span class=\"p\">()</span> <span class=\"k\">const</span> <span class=\"p\">{</span> <span class=\"k\">return</span> <span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">;</span> <span class=\"p\">}</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_13_20",
     "type": null,
     "old_line": 13,
     "new_line": 20,
     "text": "     };",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\">    <span class=\"p\">};</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_14_21",
     "type": null,
     "old_line": 14,
     "new_line": 21,
     "text": " ",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_15_22",
     "type": "new",
     "old_line": null,
     "new_line": 22,
     "text": "+    /**",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"cm\">/**</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_15_23",
     "type": "new",
     "old_line": null,
     "new_line": 23,
     "text": "+     * Instantiate a null FD.",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * Instantiate a null FD.</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_15_24",
     "type": "new",
     "old_line": null,
     "new_line": 24,
     "text": "+     */",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     */</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_15_25",
     "type": null,
     "old_line": 15,
     "new_line": 25,
     "text": "     constexpr null_fd nullfd{};",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\">    <span class=\"k\">constexpr</span> <span class=\"n\">null_fd</span> <span class=\"n\">nullfd</span><span class=\"p\">{};</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_16_26",
     "type": null,
     "old_line": 16,
     "new_line": 26,
     "text": " ",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_27",
     "type": "new",
     "old_line": null,
     "new_line": 27,
     "text": "+    /**",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"cm\">/**</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_28",
     "type": "new",
     "old_line": null,
     "new_line": 28,
     "text": "+     * Automatic file descriptor. This class wraps raw file descriptors and handles their",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * Automatic file descriptor. This class wraps raw file descriptors and handles their</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_29",
     "type": "new",
     "old_line": null,
     "new_line": 29,
     "text": "+     * life time.",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * life time.</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_30",
     "type": "new",
     "old_line": null,
     "new_line": 30,
     "text": "+     * @class auto_fd",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @class auto_fd</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_31",
     "type": "new",
     "old_line": null,
     "new_line": 31,
     "text": "+     * @author leondietrich",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @author leondietrich</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_32",
     "type": "new",
     "old_line": null,
     "new_line": 32,
     "text": "+     * @date 07/08/21",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @date 07/08/21</span></span>\n",
     "can_receive_suggestion": true
    }
   ],
   "active": true,
   "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_19_33",
   "diff_file": {
    "content_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "submodule": false,
    "submodule_link": null,
    "submodule_tree_url": null,
    "submodule_compare": null,
    "old_path_html": "src/net/async_fd.hpp",
    "new_path_html": "src/net/async_fd.hpp",
    "blob": {
     "id": "021cbc44b20c68930eae4fed68978aac900a911d",
     "path": "src/net/async_fd.hpp",
     "name": "async_fd.hpp",
     "mode": "100644",
     "readable_text": true,
     "icon": "doc-text"
    },
    "can_modify_blob": false,
    "file_identifier_hash": "480009b87cf579e44910de5d1a5b81960547207a",
    "file_hash": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6",
    "file_path": "src/net/async_fd.hpp",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "new_file": false,
    "renamed_file": false,
    "deleted_file": false,
    "diff_refs": {
     "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
     "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
     "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422"
    },
    "stored_externally": null,
    "external_storage": null,
    "mode_changed": false,
    "a_mode": "100644",
    "b_mode": "100644",
    "viewer": {
     "name": "text",
     "error": null,
     "error_message": null,
     "collapsed": false,
     "expandable": true,
     "generated": null,
     "whitespace_only": null
    },
    "alternate_viewer": null,
    "old_size": 2010,
    "new_size": 4532
   },
   "position": {
    "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
    "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
    "head_sha": "fa2c0da30d81e9c221c06bdc71fd14947642191b",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 33,
    "line_range": {
     "start": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_32",
      "type": "new",
      "old_line": null,
      "new_line": 32
     },
     "end": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_32",
      "type": "new",
      "old_line": null,
      "new_line": 32
     }
    }
   },
   "original_position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 32,
    "line_range": {
     "start": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_32",
      "type": "new",
      "old_line": null,
      "new_line": 32
     },
     "end": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_32",
      "type": "new",
      "old_line": null,
      "new_line": 32
     }
    }
   },
   "discussion_path": "/ReadMailReallyFast/code/-/merge_requests/1/diffs#31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_19_33",
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/bc4db6c248dc87b37fef8f73fbc695c3a86c872a/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=bc4db6c248dc87b37fef8f73fbc695c3a86c872a&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "notes": [
    {
     "id": "1804",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:16:02.876Z",
     "updated_at": "2022-12-08T15:16:02.876Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "head_sha": "fa2c0da30d81e9c221c06bdc71fd14947642191b",
      "old_path": "src/net/async_fd.hpp",
      "new_path": "src/net/async_fd.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 33,
      "line_range": {
       "start": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_32",
        "type": "new",
        "old_line": null,
        "new_line": 32
       },
       "end": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_32",
        "type": "new",
        "old_line": null,
        "new_line": 32
       }
      }
     },
     "resolvable": true,
     "resolved": false,
     "resolved_by": null,
     "resolved_at": null,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "ISO 8601",
     "note_html": "<p data-sourcepos=\"1:1-1:8\" dir=\"auto\">ISO 8601</p>",
     "body_first_line_html": "<p>ISO 8601</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "bc4db6c248dc87b37fef8f73fbc695c3a86c872a",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1804",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/bc4db6c248dc87b37fef8f73fbc695c3a86c872a/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=bc4db6c248dc87b37fef8f73fbc695c3a86c872a&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1804/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1804"
    }
   ],
   "positions": [
    {
     "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
     "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
     "head_sha": "fa2c0da30d81e9c221c06bdc71fd14947642191b",
     "old_path": "src/net/async_fd.hpp",
     "new_path": "src/net/async_fd.hpp",
     "position_type": "text",
     "old_line": null,
     "new_line": 33,
     "line_range": null
    }
   ],
   "line_codes": [
    "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_19_33"
   ]
  },
  {
   "id": "caaaba5d31c35de4674f4cd1967e18b0bb7a5f01",
   "reply_id": "caaaba5d31c35de4674f4cd1967e18b0bb7a5f01",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": true,
   "expanded": false,
   "for_commit": false,
   "individual_note": false,
   "resolvable": true,
   "active": false,
   "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_66",
   "diff_file": {
    "content_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "submodule": false,
    "submodule_link": null,
    "submodule_tree_url": null,
    "submodule_compare": null,
    "old_path_html": "src/net/async_fd.hpp",
    "new_path_html": "src/net/async_fd.hpp",
    "blob": {
     "id": "021cbc44b20c68930eae4fed68978aac900a911d",
     "path": "src/net/async_fd.hpp",
     "name": "async_fd.hpp",
     "mode": "100644",
     "readable_text": true,
     "icon": "doc-text"
    },
    "can_modify_blob": false,
    "file_identifier_hash": "480009b87cf579e44910de5d1a5b81960547207a",
    "file_hash": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6",
    "file_path": "src/net/async_fd.hpp",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "new_file": false,
    "renamed_file": false,
    "deleted_file": false,
    "diff_refs": {
     "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
     "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
     "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422"
    },
    "stored_externally": null,
    "external_storage": null,
    "mode_changed": false,
    "a_mode": "100644",
    "b_mode": "100644",
    "viewer": {
     "name": "text",
     "error": null,
     "error_message": null,
     "collapsed": false,
     "expandable": true,
     "generated": null,
     "whitespace_only": null
    },
    "alternate_viewer": null,
    "old_size": 2010,
    "new_size": 4532
   },
   "position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 66,
    "line_range": {
     "start": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_64",
      "type": "new",
      "old_line": null,
      "new_line": 64
     },
     "end": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_66",
      "type": "new",
      "old_line": null,
      "new_line": 66
     }
    }
   },
   "original_position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 66,
    "line_range": {
     "start": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_64",
      "type": "new",
      "old_line": null,
      "new_line": 64
     },
     "end": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_66",
      "type": "new",
      "old_line": null,
      "new_line": 66
     }
    }
   },
   "discussion_path": "/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=524#31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_66",
   "resolved": true,
   "resolved_by_push": false,
   "resolved_by": {
    "id": 32,
    "username": "doralitze",
    "public_email": "",
    "name": "Leon Dietrich",
    "state": "active",
    "locked": false,
    "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
    "show_status": false,
    "path": "/doralitze",
    "bot": false,
    "user_type": "human"
   },
   "resolved_at": "2022-12-08T15:34:51.253Z",
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/caaaba5d31c35de4674f4cd1967e18b0bb7a5f01/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=caaaba5d31c35de4674f4cd1967e18b0bb7a5f01&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "truncated_diff_lines_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/caaaba5d31c35de4674f4cd1967e18b0bb7a5f01",
   "notes": [
    {
     "id": "1805",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:16:02.925Z",
     "updated_at": "2022-12-08T15:16:02.925Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
      "old_path": "src/net/async_fd.hpp",
      "new_path": "src/net/async_fd.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 66,
      "line_range": {
       "start": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_64",
        "type": "new",
        "old_line": null,
        "new_line": 64
       },
       "end": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_66",
        "type": "new",
        "old_line": null,
        "new_line": 66
       }
      }
     },
     "resolvable": true,
     "resolved": true,
     "resolved_by": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "show_status": false,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "resolved_at": "2022-12-08T15:34:51.253Z",
     "suggestions": [
      {
       "id": 11,
       "appliable": false,
       "applied": true,
       "diff_lines": [
        {
         "line_code": null,
         "type": "match",
         "old_line": null,
         "new_line": null,
         "text": "@@ -64 +64",
         "meta_data": {
          "old_pos": 64,
          "new_pos": 64
         },
         "rich_text": "@@ -64 +64",
         "can_receive_suggestion": true
        },
        {
         "line_code": null,
         "type": "old",
         "old_line": 64,
         "new_line": null,
         "text": "-         * Use this method in order to obtain a raw file descriptor for ussage with lower level apis.",
         "meta_data": null,
         "rich_text": "-<span class=\"line\" data-lang=\"cpp\">         <span class=\"o\">*</span> <span class=\"n\">Use</span> <span class=\"k\">this</span> <span class=\"n\">method</span> <span class=\"n\"><span class=\"idiff left deletion\">in</span></span><span class=\"idiff deletion\"> </span><span class=\"n\"><span class=\"idiff deletion\">order</span></span><span class=\"idiff deletion\"> </span><span class=\"n\">to</span> <span class=\"n\">obtain</span> <span class=\"n\">a</span> <span class=\"n\">raw</span> <span class=\"n\">file</span> <span class=\"n\">descriptor</span> <span class=\"k\">for</span> <span class=\"n\">us<span class=\"idiff deletion\">s</span>age</span> <span class=\"n\">with</span> <span class=\"n\">lower</span> <span class=\"n\">level</span> <span class=\"n\"><span class=\"idiff right deletion\">api</span>s</span><span class=\"p\">.</span></span>\n",
         "can_receive_suggestion": false
        },
        {
         "line_code": null,
         "type": "old",
         "old_line": 65,
         "new_line": null,
         "text": "-         * Calling this method won't invalidate the auto_fd. Don't keep this value around (for fast",
         "meta_data": null,
         "rich_text": "-<span class=\"line\" data-lang=\"cpp\">         <span class=\"o\">*</span> <span class=\"n\">Calling</span> <span class=\"k\">this</span> <span class=\"n\">method</span> <span class=\"n\">won</span><span class=\"err\">'</span><span class=\"n\">t</span> <span class=\"n\">invalidate</span> <span class=\"n\">the</span> <span class=\"n\">auto_fd</span><span class=\"p\">.</span> <span class=\"n\">Don</span><span class=\"err\">'</span><span class=\"n\">t</span> <span class=\"n\">keep</span> <span class=\"k\">this</span> <span class=\"n\">value</span> <span class=\"n\">around</span><span class=\"idiff left deletion\"> </span><span class=\"p\"><span class=\"idiff deletion\">(</span></span><span class=\"k\"><span class=\"idiff deletion\">for</span></span><span class=\"idiff deletion\"> </span><span class=\"n\"><span class=\"idiff right deletion\">fast</span></span></span>\n",
         "can_receive_suggestion": false
        },
        {
         "line_code": null,
         "type": "old",
         "old_line": 66,
         "new_line": null,
         "text": "-         * consumption only).",
         "meta_data": null,
         "rich_text": "-<span class=\"line\" data-lang=\"cpp\">         <span class=\"o\">*</span> <span class=\"n\">consumption</span> <span class=\"n\">only</span><span class=\"p\">).</span></span>\n",
         "can_receive_suggestion": false
        },
        {
         "line_code": null,
         "type": "new",
         "old_line": null,
         "new_line": 64,
         "text": "+         * Use this method to obtain a raw file descriptor for usage with lower level APIs.",
         "meta_data": null,
         "rich_text": "+<span class=\"line\" data-lang=\"cpp\">         <span class=\"o\">*</span> <span class=\"n\">Use</span> <span class=\"k\">this</span> <span class=\"n\">method</span> <span class=\"n\">to</span> <span class=\"n\">obtain</span> <span class=\"n\">a</span> <span class=\"n\">raw</span> <span class=\"n\">file</span> <span class=\"n\">descriptor</span> <span class=\"k\">for</span> <span class=\"n\">usage</span> <span class=\"n\">with</span> <span class=\"n\">lower</span> <span class=\"n\">level</span> <span class=\"n\"><span class=\"idiff left right addition\">API</span>s</span><span class=\"p\">.</span></span>\n",
         "can_receive_suggestion": true
        },
        {
         "line_code": null,
         "type": "new",
         "old_line": null,
         "new_line": 65,
         "text": "+         * Calling this method won't invalidate the auto_fd. Don't keep this value around",
         "meta_data": null,
         "rich_text": "+<span class=\"line\" data-lang=\"cpp\">         <span class=\"o\">*</span> <span class=\"n\">Calling</span> <span class=\"k\">this</span> <span class=\"n\">method</span> <span class=\"n\">won</span><span class=\"err\">'</span><span class=\"n\">t</span> <span class=\"n\">invalidate</span> <span class=\"n\">the</span> <span class=\"n\">auto_fd</span><span class=\"p\">.</span> <span class=\"n\">Don</span><span class=\"err\">'</span><span class=\"n\">t</span> <span class=\"n\">keep</span> <span class=\"k\">this</span> <span class=\"n\">value</span> <span class=\"n\">around</span></span>\n",
         "can_receive_suggestion": true
        },
        {
         "line_code": null,
         "type": "new",
         "old_line": null,
         "new_line": 66,
         "text": "+         * (for immediate consumption only).",
         "meta_data": null,
         "rich_text": "+<span class=\"line\" data-lang=\"cpp\">         <span class=\"o\">*</span> <span class=\"p\"><span class=\"idiff left addition\">(</span></span><span class=\"k\"><span class=\"idiff addition\">for</span></span><span class=\"idiff addition\"> </span><span class=\"n\"><span class=\"idiff addition\">immediate</span></span><span class=\"idiff right addition\"> </span><span class=\"n\">consumption</span> <span class=\"n\">only</span><span class=\"p\">).</span></span>\n",
         "can_receive_suggestion": true
        }
       ],
       "current_user": {
        "can_apply": false
       },
       "inapplicable_reason": "You don't have write access to the source branch."
      }
     ],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "```suggestion:-2+0\n         * Use this method to obtain a raw file descriptor for usage with lower level APIs.\n         * Calling this method won't invalidate the auto_fd. Don't keep this value around\n         * (for immediate consumption only).\n```",
     "note_html": "<div class=\"gl-relative markdown-code-block js-markdown-code\"><pre data-sourcepos=\"1:1-5:3\" data-canonical-lang=\"suggestion\" data-lang-params=\"-2+0\" class=\"code highlight js-syntax-highlight language-suggestion\" lang=\"suggestion\" v-pre=\"true\"><code class=\"js-render-suggestion\"><span id=\"LC1\" class=\"line\" lang=\"suggestion\">         * Use this method to obtain a raw file descriptor for usage with lower level APIs.</span>\n<span id=\"LC2\" class=\"line\" lang=\"suggestion\">         * Calling this method won't invalidate the auto_fd. Don't keep this value around</span>\n<span id=\"LC3\" class=\"line\" lang=\"suggestion\">         * (for immediate consumption only).</span></code></pre></div>",
     "body_first_line_html": "<pre class=\"code highlight js-syntax-highlight language-suggestion\" lang=\"suggestion\"><code class=\"js-render-suggestion\"><span class=\"line\" lang=\"suggestion\">         * Use this method to obtain a raw file descriptor for usage with lower level APIs....</span></code></pre>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "caaaba5d31c35de4674f4cd1967e18b0bb7a5f01",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1805",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/caaaba5d31c35de4674f4cd1967e18b0bb7a5f01/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=caaaba5d31c35de4674f4cd1967e18b0bb7a5f01&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1805/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1805"
    },
    {
     "id": "1837",
     "type": "DiffNote",
     "author": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:34:52.084Z",
     "updated_at": "2022-12-08T15:34:52.084Z",
     "system": true,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
      "old_path": "src/net/async_fd.hpp",
      "new_path": "src/net/async_fd.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 66,
      "line_range": {
       "start": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_64",
        "type": "new",
        "old_line": null,
        "new_line": 64
       },
       "end": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_66",
        "type": "new",
        "old_line": null,
        "new_line": 66
       }
      }
     },
     "resolvable": false,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "changed this line in [version 2 of the diff](/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=525&start_sha=c204ad1adf9221517cb5a2954c6430b815c9d422#31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_66_64)",
     "note_html": "<p data-sourcepos=\"1:1-1:205\" dir=\"auto\">changed this line in <a data-sourcepos=\"1:22-1:205\" href=\"/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=525&amp;start_sha=c204ad1adf9221517cb5a2954c6430b815c9d422#31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_66_64\">version 2 of the diff</a></p>",
     "body_first_line_html": "<p>changed this line in version 2 of the diff</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "pencil",
     "outdated_line_change_path": "/ReadMailReallyFast/code/notes/1837/outdated_line_change",
     "is_noteable_author": true,
     "discussion_id": "caaaba5d31c35de4674f4cd1967e18b0bb7a5f01",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1837",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "path": "/ReadMailReallyFast/code/notes/1837"
    }
   ],
   "positions": [],
   "line_codes": []
  },
  {
   "id": "a19b58b220bac5d43f526352ab691bb9bdf9705d",
   "reply_id": "a19b58b220bac5d43f526352ab691bb9bdf9705d",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": true,
   "expanded": false,
   "for_commit": false,
   "individual_note": false,
   "resolvable": true,
   "active": false,
   "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_29",
   "diff_file": {
    "content_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "submodule": false,
    "submodule_link": null,
    "submodule_tree_url": null,
    "submodule_compare": null,
    "old_path_html": "src/net/async_fd.hpp",
    "new_path_html": "src/net/async_fd.hpp",
    "blob": {
     "id": "021cbc44b20c68930eae4fed68978aac900a911d",
     "path": "src/net/async_fd.hpp",
     "name": "async_fd.hpp",
     "mode": "100644",
     "readable_text": true,
     "icon": "doc-text"
    },
    "can_modify_blob": false,
    "file_identifier_hash": "480009b87cf579e44910de5d1a5b81960547207a",
    "file_hash": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6",
    "file_path": "src/net/async_fd.hpp",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "new_file": false,
    "renamed_file": false,
    "deleted_file": false,
    "diff_refs": {
     "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
     "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
     "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422"
    },
    "stored_externally": null,
    "external_storage": null,
    "mode_changed": false,
    "a_mode": "100644",
    "b_mode": "100644",
    "viewer": {
     "name": "text",
     "error": null,
     "error_message": null,
     "collapsed": false,
     "expandable": true,
     "generated": null,
     "whitespace_only": null
    },
    "alternate_viewer": null,
    "old_size": 2010,
    "new_size": 4532
   },
   "position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "5499aaab42d2fb657aa7f740160dcc60f4e0847e",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 29,
    "line_range": {
     "start": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_28",
      "type": "new",
      "old_line": null,
      "new_line": 28
     },
     "end": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_29",
      "type": "new",
      "old_line": null,
      "new_line": 29
     }
    }
   },
   "original_position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 29,
    "line_range": {
     "start": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_28",
      "type": "new",
      "old_line": null,
      "new_line": 28
     },
     "end": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_29",
      "type": "new",
      "old_line": null,
      "new_line": 29
     }
    }
   },
   "discussion_path": "/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=525#31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_29",
   "resolved": true,
   "resolved_by_push": false,
   "resolved_by": {
    "id": 32,
    "username": "doralitze",
    "public_email": "",
    "name": "Leon Dietrich",
    "state": "active",
    "locked": false,
    "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
    "show_status": false,
    "path": "/doralitze",
    "bot": false,
    "user_type": "human"
   },
   "resolved_at": "2022-12-08T15:36:10.196Z",
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/a19b58b220bac5d43f526352ab691bb9bdf9705d/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=a19b58b220bac5d43f526352ab691bb9bdf9705d&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "truncated_diff_lines_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/a19b58b220bac5d43f526352ab691bb9bdf9705d",
   "notes": [
    {
     "id": "1806",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:16:02.988Z",
     "updated_at": "2022-12-08T15:16:02.988Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "5499aaab42d2fb657aa7f740160dcc60f4e0847e",
      "old_path": "src/net/async_fd.hpp",
      "new_path": "src/net/async_fd.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 29,
      "line_range": {
       "start": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_28",
        "type": "new",
        "old_line": null,
        "new_line": 28
       },
       "end": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_29",
        "type": "new",
        "old_line": null,
        "new_line": 29
       }
      }
     },
     "resolvable": true,
     "resolved": true,
     "resolved_by": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "show_status": false,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "resolved_at": "2022-12-08T15:36:10.196Z",
     "suggestions": [
      {
       "id": 12,
       "appliable": false,
       "applied": true,
       "diff_lines": [
        {
         "line_code": null,
         "type": "match",
         "old_line": null,
         "new_line": null,
         "text": "@@ -28 +28",
         "meta_data": {
          "old_pos": 28,
          "new_pos": 28
         },
         "rich_text": "@@ -28 +28",
         "can_receive_suggestion": true
        },
        {
         "line_code": null,
         "type": "old",
         "old_line": 28,
         "new_line": null,
         "text": "-     * Automatic file descriptor. This class wraps raw file descriptors and handles their",
         "meta_data": null,
         "rich_text": "-<span class=\"line\" data-lang=\"cpp\">     <span class=\"o\">*</span> <span class=\"n\">Automatic</span> <span class=\"n\">file</span> <span class=\"n\">descriptor</span><span class=\"p\">.</span> <span class=\"n\">This</span> <span class=\"k\">class</span> <span class=\"nc\">wraps</span> <span class=\"n\">raw</span> <span class=\"n\">file</span> <span class=\"n\">descriptors</span> <span class=\"n\">and</span> <span class=\"n\">handles</span> <span class=\"n\">their</span></span>\n",
         "can_receive_suggestion": false
        },
        {
         "line_code": null,
         "type": "old",
         "old_line": 29,
         "new_line": null,
         "text": "-     * life time.",
         "meta_data": null,
         "rich_text": "-<span class=\"line\" data-lang=\"cpp\">     <span class=\"o\">*</span> <span class=\"n\">life</span> <span class=\"n\">time</span><span class=\"p\">.</span></span>\n",
         "can_receive_suggestion": false
        },
        {
         "line_code": null,
         "type": "new",
         "old_line": null,
         "new_line": 28,
         "text": "+     * Automatic file descriptor.",
         "meta_data": null,
         "rich_text": "+<span class=\"line\" data-lang=\"cpp\">     <span class=\"o\">*</span> <span class=\"n\">Automatic</span> <span class=\"n\">file</span> <span class=\"n\">descriptor</span><span class=\"p\">.</span></span>\n",
         "can_receive_suggestion": true
        },
        {
         "line_code": null,
         "type": "new",
         "old_line": null,
         "new_line": 29,
         "text": "+     *",
         "meta_data": null,
         "rich_text": "+<span class=\"line\" data-lang=\"cpp\">     <span class=\"o\">*</span></span>\n",
         "can_receive_suggestion": true
        },
        {
         "line_code": null,
         "type": "new",
         "old_line": null,
         "new_line": 30,
         "text": "+     * This class wraps raw file descriptors and handles their life time.",
         "meta_data": null,
         "rich_text": "+<span class=\"line\" data-lang=\"cpp\">     <span class=\"o\">*</span> <span class=\"n\">This</span> <span class=\"k\">class</span> <span class=\"nc\">wraps</span> <span class=\"n\">raw</span> <span class=\"n\">file</span> <span class=\"n\">descriptors</span> <span class=\"n\">and</span> <span class=\"n\">handles</span> <span class=\"n\">their</span> <span class=\"n\">life</span> <span class=\"n\">time</span><span class=\"p\">.</span></span>\n",
         "can_receive_suggestion": true
        },
        {
         "line_code": null,
         "type": "new",
         "old_line": null,
         "new_line": 31,
         "text": "+     *",
         "meta_data": null,
         "rich_text": "+<span class=\"line\" data-lang=\"cpp\">     <span class=\"o\">*</span></span>\n",
         "can_receive_suggestion": true
        }
       ],
       "current_user": {
        "can_apply": false
       },
       "inapplicable_reason": "You don't have write access to the source branch."
      }
     ],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "No fixed line length enforced. Just putting this on one line is IMHO the better choice.\n\nAlternatively have it split into two paragraphs with the first sentence being the executive brief.\n\n```suggestion:-1+0\n     * Automatic file descriptor.\n     *\n     * This class wraps raw file descriptors and handles their life time.\n     *\n```",
     "note_html": "<p data-sourcepos=\"1:1-1:87\" dir=\"auto\">No fixed line length enforced. Just putting this on one line is IMHO the better choice.</p>\n<p data-sourcepos=\"3:1-3:98\" dir=\"auto\">Alternatively have it split into two paragraphs with the first sentence being the executive brief.</p>\n<div class=\"gl-relative markdown-code-block js-markdown-code\"><pre data-sourcepos=\"5:1-10:3\" data-canonical-lang=\"suggestion\" data-lang-params=\"-1+0\" class=\"code highlight js-syntax-highlight language-suggestion\" lang=\"suggestion\" v-pre=\"true\"><code class=\"js-render-suggestion\"><span id=\"LC1\" class=\"line\" lang=\"suggestion\">     * Automatic file descriptor.</span>\n<span id=\"LC2\" class=\"line\" lang=\"suggestion\">     *</span>\n<span id=\"LC3\" class=\"line\" lang=\"suggestion\">     * This class wraps raw file descriptors and handles their life time.</span>\n<span id=\"LC4\" class=\"line\" lang=\"suggestion\">     *</span></code></pre></div>",
     "body_first_line_html": "<p>No fixed line length enforced. Just putting this on one line is IMHO the better choice....</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "a19b58b220bac5d43f526352ab691bb9bdf9705d",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1806",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/a19b58b220bac5d43f526352ab691bb9bdf9705d/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=a19b58b220bac5d43f526352ab691bb9bdf9705d&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1806/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1806"
    },
    {
     "id": "1839",
     "type": "DiffNote",
     "author": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:36:11.348Z",
     "updated_at": "2022-12-08T15:36:11.348Z",
     "system": true,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "5499aaab42d2fb657aa7f740160dcc60f4e0847e",
      "old_path": "src/net/async_fd.hpp",
      "new_path": "src/net/async_fd.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 29,
      "line_range": {
       "start": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_28",
        "type": "new",
        "old_line": null,
        "new_line": 28
       },
       "end": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_17_29",
        "type": "new",
        "old_line": null,
        "new_line": 29
       }
      }
     },
     "resolvable": false,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "changed this line in [version 3 of the diff](/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=526&start_sha=5499aaab42d2fb657aa7f740160dcc60f4e0847e#31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_29_28)",
     "note_html": "<p data-sourcepos=\"1:1-1:205\" dir=\"auto\">changed this line in <a data-sourcepos=\"1:22-1:205\" href=\"/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=526&amp;start_sha=5499aaab42d2fb657aa7f740160dcc60f4e0847e#31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_29_28\">version 3 of the diff</a></p>",
     "body_first_line_html": "<p>changed this line in version 3 of the diff</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "pencil",
     "outdated_line_change_path": "/ReadMailReallyFast/code/notes/1839/outdated_line_change",
     "is_noteable_author": true,
     "discussion_id": "a19b58b220bac5d43f526352ab691bb9bdf9705d",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1839",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "path": "/ReadMailReallyFast/code/notes/1839"
    }
   ],
   "positions": [],
   "line_codes": []
  },
  {
   "id": "7f229adba2a5964c2e4e7d7b4fe52b3b5ece505d",
   "reply_id": "7f229adba2a5964c2e4e7d7b4fe52b3b5ece505d",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": true,
   "expanded": false,
   "for_commit": false,
   "individual_note": false,
   "resolvable": true,
   "active": false,
   "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_69",
   "diff_file": {
    "content_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "submodule": false,
    "submodule_link": null,
    "submodule_tree_url": null,
    "submodule_compare": null,
    "old_path_html": "src/net/async_fd.hpp",
    "new_path_html": "src/net/async_fd.hpp",
    "blob": {
     "id": "021cbc44b20c68930eae4fed68978aac900a911d",
     "path": "src/net/async_fd.hpp",
     "name": "async_fd.hpp",
     "mode": "100644",
     "readable_text": true,
     "icon": "doc-text"
    },
    "can_modify_blob": false,
    "file_identifier_hash": "480009b87cf579e44910de5d1a5b81960547207a",
    "file_hash": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6",
    "file_path": "src/net/async_fd.hpp",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "new_file": false,
    "renamed_file": false,
    "deleted_file": false,
    "diff_refs": {
     "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
     "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
     "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422"
    },
    "stored_externally": null,
    "external_storage": null,
    "mode_changed": false,
    "a_mode": "100644",
    "b_mode": "100644",
    "viewer": {
     "name": "text",
     "error": null,
     "error_message": null,
     "collapsed": false,
     "expandable": true,
     "generated": null,
     "whitespace_only": null
    },
    "alternate_viewer": null,
    "old_size": 2010,
    "new_size": 4532
   },
   "position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "294f6754e35b0d3662c20a48e0af93b21cc30a88",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 69,
    "line_range": {
     "start": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_67",
      "type": "new",
      "old_line": null,
      "new_line": 67
     },
     "end": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_67",
      "type": "new",
      "old_line": null,
      "new_line": 67
     }
    }
   },
   "original_position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 67,
    "line_range": {
     "start": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_67",
      "type": "new",
      "old_line": null,
      "new_line": 67
     },
     "end": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_67",
      "type": "new",
      "old_line": null,
      "new_line": 67
     }
    }
   },
   "discussion_path": "/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=526#31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_69",
   "resolved": true,
   "resolved_by_push": false,
   "resolved_by": {
    "id": 32,
    "username": "doralitze",
    "public_email": "",
    "name": "Leon Dietrich",
    "state": "active",
    "locked": false,
    "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
    "show_status": false,
    "path": "/doralitze",
    "bot": false,
    "user_type": "human"
   },
   "resolved_at": "2022-12-08T15:36:23.100Z",
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/7f229adba2a5964c2e4e7d7b4fe52b3b5ece505d/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=7f229adba2a5964c2e4e7d7b4fe52b3b5ece505d&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "truncated_diff_lines_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/7f229adba2a5964c2e4e7d7b4fe52b3b5ece505d",
   "notes": [
    {
     "id": "1807",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:16:03.043Z",
     "updated_at": "2022-12-08T15:16:03.043Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "294f6754e35b0d3662c20a48e0af93b21cc30a88",
      "old_path": "src/net/async_fd.hpp",
      "new_path": "src/net/async_fd.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 69,
      "line_range": {
       "start": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_67",
        "type": "new",
        "old_line": null,
        "new_line": 67
       },
       "end": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_67",
        "type": "new",
        "old_line": null,
        "new_line": 67
       }
      }
     },
     "resolvable": true,
     "resolved": true,
     "resolved_by": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "show_status": false,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "resolved_at": "2022-12-08T15:36:23.100Z",
     "suggestions": [
      {
       "id": 13,
       "appliable": false,
       "applied": true,
       "diff_lines": [
        {
         "line_code": null,
         "type": "match",
         "old_line": null,
         "new_line": null,
         "text": "@@ -69 +69",
         "meta_data": {
          "old_pos": 69,
          "new_pos": 69
         },
         "rich_text": "@@ -69 +69",
         "can_receive_suggestion": true
        },
        {
         "line_code": null,
         "type": "old",
         "old_line": 69,
         "new_line": null,
         "text": "-         * @brief Get the raw representation of the file descriptor for interaction with the kernel apis.",
         "meta_data": null,
         "rich_text": "-<span class=\"line\" data-lang=\"cpp\">         <span class=\"o\">*</span> <span class=\"err\">@</span><span class=\"n\">brief</span> <span class=\"n\">Get</span> <span class=\"n\">the</span> <span class=\"n\">raw</span> <span class=\"n\">representation</span> <span class=\"n\">of</span> <span class=\"n\">the</span> <span class=\"n\">file</span> <span class=\"n\">descriptor</span> <span class=\"k\">for</span> <span class=\"n\">interaction</span> <span class=\"n\">with</span> <span class=\"n\"><span class=\"idiff left deletion\">the</span></span><span class=\"idiff deletion\"> </span><span class=\"n\">kernel</span> <span class=\"n\"><span class=\"idiff right deletion\">api</span>s</span><span class=\"p\">.</span></span>\n",
         "can_receive_suggestion": false
        },
        {
         "line_code": null,
         "type": "new",
         "old_line": null,
         "new_line": 69,
         "text": "+         * @brief Get the raw representation of the file descriptor for interaction with kernel APIs.",
         "meta_data": null,
         "rich_text": "+<span class=\"line\" data-lang=\"cpp\">         <span class=\"o\">*</span> <span class=\"err\">@</span><span class=\"n\">brief</span> <span class=\"n\">Get</span> <span class=\"n\">the</span> <span class=\"n\">raw</span> <span class=\"n\">representation</span> <span class=\"n\">of</span> <span class=\"n\">the</span> <span class=\"n\">file</span> <span class=\"n\">descriptor</span> <span class=\"k\">for</span> <span class=\"n\">interaction</span> <span class=\"n\">with</span> <span class=\"n\">kernel</span> <span class=\"n\"><span class=\"idiff left right addition\">API</span>s</span><span class=\"p\">.</span></span>\n",
         "can_receive_suggestion": true
        }
       ],
       "current_user": {
        "can_apply": false
       },
       "inapplicable_reason": "You don't have write access to the source branch."
      },
      {
       "id": 14,
       "appliable": false,
       "applied": false,
       "diff_lines": [
        {
         "line_code": null,
         "type": "match",
         "old_line": null,
         "new_line": null,
         "text": "@@ -69 +69",
         "meta_data": {
          "old_pos": 69,
          "new_pos": 69
         },
         "rich_text": "@@ -69 +69",
         "can_receive_suggestion": true
        },
        {
         "line_code": null,
         "type": "old",
         "old_line": 69,
         "new_line": null,
         "text": "-         * @brief Get the raw representation of the file descriptor for interaction with the kernel apis.",
         "meta_data": null,
         "rich_text": "-<span class=\"line\" data-lang=\"cpp\">         <span class=\"o\">*</span> <span class=\"err\">@</span><span class=\"n\">brief</span> <span class=\"n\">Get</span> <span class=\"n\"><span class=\"idiff left deletion\">the</span></span><span class=\"idiff deletion\"> </span><span class=\"n\"><span class=\"idiff deletion\">raw</span></span><span class=\"idiff deletion\"> </span><span class=\"n\"><span class=\"idiff deletion\">representation</span></span><span class=\"idiff deletion\"> </span><span class=\"n\"><span class=\"idiff deletion\">of</span></span><span class=\"idiff deletion\"> </span><span class=\"n\"><span class=\"idiff deletion\">the</span></span><span class=\"idiff deletion\"> </span><span class=\"n\"><span class=\"idiff deletion\">file</span></span><span class=\"idiff deletion\"> </span><span class=\"n\"><span class=\"idiff deletion\">descriptor</span></span><span class=\"idiff deletion\"> </span><span class=\"k\"><span class=\"idiff deletion\">for</span></span><span class=\"idiff deletion\"> </span><span class=\"n\"><span class=\"idiff deletion\">interaction</span></span><span class=\"idiff deletion\"> </span><span class=\"n\"><span class=\"idiff deletion\">with</span></span><span class=\"idiff deletion\"> </span><span class=\"n\"><span class=\"idiff deletion\">the</span></span><span class=\"idiff deletion\"> </span><span class=\"n\"><span class=\"idiff deletion\">kernel</span></span><span class=\"idiff deletion\"> </span><span class=\"n\"><span class=\"idiff deletion\">apis</span></span><span class=\"p\"><span class=\"idiff right deletion\">.</span></span></span>\n",
         "can_receive_suggestion": false
        },
        {
         "line_code": null,
         "type": "new",
         "old_line": null,
         "new_line": 69,
         "text": "+         * @brief Get raw file descriptor for kernel APIs and keep control over it",
         "meta_data": null,
         "rich_text": "+<span class=\"line\" data-lang=\"cpp\">         <span class=\"o\">*</span> <span class=\"err\">@</span><span class=\"n\">brief</span> <span class=\"n\">Get</span> <span class=\"n\"><span class=\"idiff left addition\">raw</span></span><span class=\"idiff addition\"> </span><span class=\"n\"><span class=\"idiff addition\">file</span></span><span class=\"idiff addition\"> </span><span class=\"n\"><span class=\"idiff addition\">descriptor</span></span><span class=\"idiff addition\"> </span><span class=\"k\"><span class=\"idiff addition\">for</span></span><span class=\"idiff addition\"> </span><span class=\"n\"><span class=\"idiff addition\">kernel</span></span><span class=\"idiff addition\"> </span><span class=\"n\"><span class=\"idiff addition\">APIs</span></span><span class=\"idiff addition\"> </span><span class=\"n\"><span class=\"idiff addition\">and</span></span><span class=\"idiff addition\"> </span><span class=\"n\"><span class=\"idiff addition\">keep</span></span><span class=\"idiff addition\"> </span><span class=\"n\"><span class=\"idiff addition\">control</span></span><span class=\"idiff addition\"> </span><span class=\"n\"><span class=\"idiff addition\">over</span></span><span class=\"idiff addition\"> </span><span class=\"n\"><span class=\"idiff right addition\">it</span></span></span>\n",
         "can_receive_suggestion": true
        }
       ],
       "current_user": {
        "can_apply": false
       },
       "inapplicable_reason": "You don't have write access to the source branch."
      }
     ],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "```suggestion:-0+0\n         * @brief Get the raw representation of the file descriptor for interaction with kernel APIs.\n```\n\nMaybe also check consistency `kernel APIs` and `lower level APIs`\n\nAlso in combination with the method below:\n\n```suggestion:-0+0\n         * @brief Get raw file descriptor for kernel APIs and keep control over it\n```",
     "note_html": "<div class=\"gl-relative markdown-code-block js-markdown-code\"><pre data-sourcepos=\"1:1-3:3\" data-canonical-lang=\"suggestion\" data-lang-params=\"-0+0\" class=\"code highlight js-syntax-highlight language-suggestion\" lang=\"suggestion\" v-pre=\"true\"><code class=\"js-render-suggestion\"><span id=\"LC1\" class=\"line\" lang=\"suggestion\">         * @brief Get the raw representation of the file descriptor for interaction with kernel APIs.</span></code></pre></div>\n<p data-sourcepos=\"5:1-5:65\" dir=\"auto\">Maybe also check consistency <code data-sourcepos=\"5:31-5:41\">kernel APIs</code> and <code data-sourcepos=\"5:49-5:64\">lower level APIs</code></p>\n<p data-sourcepos=\"7:1-7:42\" dir=\"auto\">Also in combination with the method below:</p>\n<div class=\"gl-relative markdown-code-block js-markdown-code\"><pre data-sourcepos=\"9:1-11:3\" data-canonical-lang=\"suggestion\" data-lang-params=\"-0+0\" class=\"code highlight js-syntax-highlight language-suggestion\" lang=\"suggestion\" v-pre=\"true\"><code class=\"js-render-suggestion\"><span id=\"LC1\" class=\"line\" lang=\"suggestion\">         * @brief Get raw file descriptor for kernel APIs and keep control over it</span></code></pre></div>",
     "body_first_line_html": "<pre class=\"code highlight js-syntax-highlight language-suggestion\" lang=\"suggestion\"><code class=\"js-render-suggestion\"><span class=\"line\" lang=\"suggestion\">         * @brief Get the raw representation of the file descriptor for interaction with kernel APIs.</span></code></pre>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "7f229adba2a5964c2e4e7d7b4fe52b3b5ece505d",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1807",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/7f229adba2a5964c2e4e7d7b4fe52b3b5ece505d/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=7f229adba2a5964c2e4e7d7b4fe52b3b5ece505d&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1807/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1807"
    },
    {
     "id": "1841",
     "type": "DiffNote",
     "author": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:36:24.285Z",
     "updated_at": "2022-12-08T15:36:24.285Z",
     "system": true,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "294f6754e35b0d3662c20a48e0af93b21cc30a88",
      "old_path": "src/net/async_fd.hpp",
      "new_path": "src/net/async_fd.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 69,
      "line_range": {
       "start": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_67",
        "type": "new",
        "old_line": null,
        "new_line": 67
       },
       "end": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_40_67",
        "type": "new",
        "old_line": null,
        "new_line": 67
       }
      }
     },
     "resolvable": false,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "changed this line in [version 4 of the diff](/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=527&start_sha=294f6754e35b0d3662c20a48e0af93b21cc30a88#31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_69_69)",
     "note_html": "<p data-sourcepos=\"1:1-1:205\" dir=\"auto\">changed this line in <a data-sourcepos=\"1:22-1:205\" href=\"/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=527&amp;start_sha=294f6754e35b0d3662c20a48e0af93b21cc30a88#31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_69_69\">version 4 of the diff</a></p>",
     "body_first_line_html": "<p>changed this line in version 4 of the diff</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "pencil",
     "outdated_line_change_path": "/ReadMailReallyFast/code/notes/1841/outdated_line_change",
     "is_noteable_author": true,
     "discussion_id": "7f229adba2a5964c2e4e7d7b4fe52b3b5ece505d",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1841",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "path": "/ReadMailReallyFast/code/notes/1841"
    }
   ],
   "positions": [],
   "line_codes": []
  },
  {
   "id": "ecec7dac4b76aa67386770680680002f7f3a9df0",
   "reply_id": "ecec7dac4b76aa67386770680680002f7f3a9df0",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": true,
   "expanded": false,
   "for_commit": false,
   "individual_note": false,
   "resolvable": true,
   "active": false,
   "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_42_80",
   "diff_file": {
    "content_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "submodule": false,
    "submodule_link": null,
    "submodule_tree_url": null,
    "submodule_compare": null,
    "old_path_html": "src/net/async_fd.hpp",
    "new_path_html": "src/net/async_fd.hpp",
    "blob": {
     "id": "021cbc44b20c68930eae4fed68978aac900a911d",
     "path": "src/net/async_fd.hpp",
     "name": "async_fd.hpp",
     "mode": "100644",
     "readable_text": true,
     "icon": "doc-text"
    },
    "can_modify_blob": false,
    "file_identifier_hash": "480009b87cf579e44910de5d1a5b81960547207a",
    "file_hash": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6",
    "file_path": "src/net/async_fd.hpp",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "new_file": false,
    "renamed_file": false,
    "deleted_file": false,
    "diff_refs": {
     "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
     "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
     "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422"
    },
    "stored_externally": null,
    "external_storage": null,
    "mode_changed": false,
    "a_mode": "100644",
    "b_mode": "100644",
    "viewer": {
     "name": "text",
     "error": null,
     "error_message": null,
     "collapsed": false,
     "expandable": true,
     "generated": null,
     "whitespace_only": null
    },
    "alternate_viewer": null,
    "old_size": 2010,
    "new_size": 4532
   },
   "position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "ba78456de512a3969c166d3d9df87da66044b542",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 80,
    "line_range": {
     "start": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_42_78",
      "type": "new",
      "old_line": null,
      "new_line": 78
     },
     "end": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_42_78",
      "type": "new",
      "old_line": null,
      "new_line": 78
     }
    }
   },
   "original_position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 78,
    "line_range": {
     "start": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_42_78",
      "type": "new",
      "old_line": null,
      "new_line": 78
     },
     "end": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_42_78",
      "type": "new",
      "old_line": null,
      "new_line": 78
     }
    }
   },
   "discussion_path": "/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=527#31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_42_80",
   "resolved": true,
   "resolved_by_push": false,
   "resolved_by": {
    "id": 32,
    "username": "doralitze",
    "public_email": "",
    "name": "Leon Dietrich",
    "state": "active",
    "locked": false,
    "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
    "show_status": false,
    "path": "/doralitze",
    "bot": false,
    "user_type": "human"
   },
   "resolved_at": "2022-12-08T16:00:31.152Z",
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/ecec7dac4b76aa67386770680680002f7f3a9df0/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=ecec7dac4b76aa67386770680680002f7f3a9df0&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "truncated_diff_lines_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/ecec7dac4b76aa67386770680680002f7f3a9df0",
   "notes": [
    {
     "id": "1808",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:16:03.102Z",
     "updated_at": "2022-12-08T15:16:03.102Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "ba78456de512a3969c166d3d9df87da66044b542",
      "old_path": "src/net/async_fd.hpp",
      "new_path": "src/net/async_fd.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 80,
      "line_range": {
       "start": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_42_78",
        "type": "new",
        "old_line": null,
        "new_line": 78
       },
       "end": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_42_78",
        "type": "new",
        "old_line": null,
        "new_line": 78
       }
      }
     },
     "resolvable": true,
     "resolved": true,
     "resolved_by": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "show_status": false,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "resolved_at": "2022-12-08T16:00:31.152Z",
     "suggestions": [
      {
       "id": 15,
       "appliable": false,
       "applied": true,
       "diff_lines": [
        {
         "line_code": null,
         "type": "match",
         "old_line": null,
         "new_line": null,
         "text": "@@ -80 +80",
         "meta_data": {
          "old_pos": 80,
          "new_pos": 80
         },
         "rich_text": "@@ -80 +80",
         "can_receive_suggestion": true
        },
        {
         "line_code": null,
         "type": "old",
         "old_line": 80,
         "new_line": null,
         "text": "-         * @brief get a raw file descriptor from this auto_fd",
         "meta_data": null,
         "rich_text": "-<span class=\"line\" data-lang=\"cpp\">         <span class=\"o\">*</span> <span class=\"err\">@</span><span class=\"n\">brief</span> <span class=\"n\"><span class=\"idiff left deletion\">g</span>et</span> <span class=\"n\"><span class=\"idiff deletion\">a</span></span><span class=\"idiff deletion\"> </span><span class=\"n\">raw</span> <span class=\"n\">file</span> <span class=\"n\">descriptor</span> <span class=\"n\">f<span class=\"idiff deletion\">rom</span></span><span class=\"idiff deletion\"> </span><span class=\"k\"><span class=\"idiff deletion\">this</span></span><span class=\"idiff deletion\"> </span><span class=\"n\"><span class=\"idiff right deletion\">auto_fd</span></span></span>\n",
         "can_receive_suggestion": false
        },
        {
         "line_code": null,
         "type": "new",
         "old_line": null,
         "new_line": 80,
         "text": "+         * @brief Get raw file descriptor for kernel APIs and cease control over it",
         "meta_data": null,
         "rich_text": "+<span class=\"line\" data-lang=\"cpp\">         <span class=\"o\">*</span> <span class=\"err\">@</span><span class=\"n\">brief</span> <span class=\"n\"><span class=\"idiff left addition\">G</span>et</span> <span class=\"n\">raw</span> <span class=\"n\">file</span> <span class=\"n\">descriptor</span> <span class=\"k\">f<span class=\"idiff addition\">or</span></span><span class=\"idiff addition\"> </span><span class=\"n\"><span class=\"idiff addition\">kernel</span></span><span class=\"idiff addition\"> </span><span class=\"n\"><span class=\"idiff addition\">APIs</span></span><span class=\"idiff addition\"> </span><span class=\"n\"><span class=\"idiff addition\">and</span></span><span class=\"idiff addition\"> </span><span class=\"n\"><span class=\"idiff addition\">cease</span></span><span class=\"idiff addition\"> </span><span class=\"n\"><span class=\"idiff addition\">control</span></span><span class=\"idiff addition\"> </span><span class=\"n\"><span class=\"idiff addition\">over</span></span><span class=\"idiff addition\"> </span><span class=\"n\"><span class=\"idiff right addition\">it</span></span></span>\n",
         "can_receive_suggestion": true
        }
       ],
       "current_user": {
        "can_apply": false
       },
       "inapplicable_reason": "You don't have write access to the source branch."
      }
     ],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "```suggestion:-0+0\n         * @brief Get raw file descriptor for kernel APIs and cease control over it\n```",
     "note_html": "<div class=\"gl-relative markdown-code-block js-markdown-code\"><pre data-sourcepos=\"1:1-3:3\" data-canonical-lang=\"suggestion\" data-lang-params=\"-0+0\" class=\"code highlight js-syntax-highlight language-suggestion\" lang=\"suggestion\" v-pre=\"true\"><code class=\"js-render-suggestion\"><span id=\"LC1\" class=\"line\" lang=\"suggestion\">         * @brief Get raw file descriptor for kernel APIs and cease control over it</span></code></pre></div>",
     "body_first_line_html": "<pre class=\"code highlight js-syntax-highlight language-suggestion\" lang=\"suggestion\"><code class=\"js-render-suggestion\"><span class=\"line\" lang=\"suggestion\">         * @brief Get raw file descriptor for kernel APIs and cease control over it</span></code></pre>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "ecec7dac4b76aa67386770680680002f7f3a9df0",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1808",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/ecec7dac4b76aa67386770680680002f7f3a9df0/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=ecec7dac4b76aa67386770680680002f7f3a9df0&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1808/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1808"
    },
    {
     "id": "1848",
     "type": "DiffNote",
     "author": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T16:00:32.576Z",
     "updated_at": "2022-12-08T16:00:32.576Z",
     "system": true,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "ba78456de512a3969c166d3d9df87da66044b542",
      "old_path": "src/net/async_fd.hpp",
      "new_path": "src/net/async_fd.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 80,
      "line_range": {
       "start": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_42_78",
        "type": "new",
        "old_line": null,
        "new_line": 78
       },
       "end": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_42_78",
        "type": "new",
        "old_line": null,
        "new_line": 78
       }
      }
     },
     "resolvable": false,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "changed this line in [version 5 of the diff](/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=528&start_sha=ba78456de512a3969c166d3d9df87da66044b542#31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_80_80)",
     "note_html": "<p data-sourcepos=\"1:1-1:205\" dir=\"auto\">changed this line in <a data-sourcepos=\"1:22-1:205\" href=\"/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=528&amp;start_sha=ba78456de512a3969c166d3d9df87da66044b542#31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_80_80\">version 5 of the diff</a></p>",
     "body_first_line_html": "<p>changed this line in version 5 of the diff</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "pencil",
     "outdated_line_change_path": "/ReadMailReallyFast/code/notes/1848/outdated_line_change",
     "is_noteable_author": true,
     "discussion_id": "ecec7dac4b76aa67386770680680002f7f3a9df0",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1848",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "path": "/ReadMailReallyFast/code/notes/1848"
    }
   ],
   "positions": [],
   "line_codes": []
  },
  {
   "id": "3dc902b3bb689fd5721c614ccbdc733e98188b4d",
   "reply_id": "3dc902b3bb689fd5721c614ccbdc733e98188b4d",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": true,
   "expanded": true,
   "for_commit": false,
   "individual_note": false,
   "resolvable": true,
   "truncated_diff_lines": [
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_46_85",
     "type": null,
     "old_line": 46,
     "new_line": 85,
     "text": "             return r;",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\">            <span class=\"k\">return</span> <span class=\"n\">r</span><span class=\"p\">;</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_47_86",
     "type": null,
     "old_line": 47,
     "new_line": 86,
     "text": "         }",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\">        <span class=\"p\">}</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_48_87",
     "type": null,
     "old_line": 48,
     "new_line": 87,
     "text": " ",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_49_88",
     "type": "old",
     "old_line": 49,
     "new_line": null,
     "text": "-        // Close an open file descriptor. Reset the descriptor to -1.",
     "meta_data": null,
     "rich_text": "-<span class=\"line\" data-lang=\"cpp\">        <span class=\"c1\">// Close an open file descriptor. Reset the descriptor to -1.</span></span>\n",
     "can_receive_suggestion": false
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_50_88",
     "type": "new",
     "old_line": null,
     "new_line": 88,
     "text": "+        /**",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">        <span class=\"cm\">/**</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_50_89",
     "type": "new",
     "old_line": null,
     "new_line": 89,
     "text": "+         * Use this method in order to manually close the resource associated with this file descriptor.",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">         * Use this method in order to manually close the resource associated with this file descriptor.</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_50_90",
     "type": "new",
     "old_line": null,
     "new_line": 90,
     "text": "+         * After this method was executed this file descriptor is invalid. Further calls to this method",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">         * After this method was executed this file descriptor is invalid. Further calls to this method</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_50_91",
     "type": "new",
     "old_line": null,
     "new_line": 91,
     "text": "+         * won't do anything.",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">         * won't do anything.</span></span>\n",
     "can_receive_suggestion": true
    }
   ],
   "active": true,
   "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_50_90",
   "diff_file": {
    "content_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "submodule": false,
    "submodule_link": null,
    "submodule_tree_url": null,
    "submodule_compare": null,
    "old_path_html": "src/net/async_fd.hpp",
    "new_path_html": "src/net/async_fd.hpp",
    "blob": {
     "id": "021cbc44b20c68930eae4fed68978aac900a911d",
     "path": "src/net/async_fd.hpp",
     "name": "async_fd.hpp",
     "mode": "100644",
     "readable_text": true,
     "icon": "doc-text"
    },
    "can_modify_blob": false,
    "file_identifier_hash": "480009b87cf579e44910de5d1a5b81960547207a",
    "file_hash": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6",
    "file_path": "src/net/async_fd.hpp",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "new_file": false,
    "renamed_file": false,
    "deleted_file": false,
    "diff_refs": {
     "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
     "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
     "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422"
    },
    "stored_externally": null,
    "external_storage": null,
    "mode_changed": false,
    "a_mode": "100644",
    "b_mode": "100644",
    "viewer": {
     "name": "text",
     "error": null,
     "error_message": null,
     "collapsed": false,
     "expandable": true,
     "generated": null,
     "whitespace_only": null
    },
    "alternate_viewer": null,
    "old_size": 2010,
    "new_size": 4532
   },
   "position": {
    "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
    "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
    "head_sha": "fa2c0da30d81e9c221c06bdc71fd14947642191b",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 90,
    "line_range": {
     "start": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_50_91",
      "type": "new",
      "old_line": null,
      "new_line": 91
     },
     "end": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_50_91",
      "type": "new",
      "old_line": null,
      "new_line": 91
     }
    }
   },
   "original_position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "old_path": "src/net/async_fd.hpp",
    "new_path": "src/net/async_fd.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 91,
    "line_range": {
     "start": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_50_91",
      "type": "new",
      "old_line": null,
      "new_line": 91
     },
     "end": {
      "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_50_91",
      "type": "new",
      "old_line": null,
      "new_line": 91
     }
    }
   },
   "discussion_path": "/ReadMailReallyFast/code/-/merge_requests/1/diffs#31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_50_90",
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/3dc902b3bb689fd5721c614ccbdc733e98188b4d/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=3dc902b3bb689fd5721c614ccbdc733e98188b4d&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "notes": [
    {
     "id": "1809",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:16:03.153Z",
     "updated_at": "2022-12-08T15:16:03.153Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "head_sha": "fa2c0da30d81e9c221c06bdc71fd14947642191b",
      "old_path": "src/net/async_fd.hpp",
      "new_path": "src/net/async_fd.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 90,
      "line_range": {
       "start": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_50_91",
        "type": "new",
        "old_line": null,
        "new_line": 91
       },
       "end": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_50_91",
        "type": "new",
        "old_line": null,
        "new_line": 91
       }
      }
     },
     "resolvable": true,
     "resolved": false,
     "resolved_by": null,
     "resolved_at": null,
     "suggestions": [
      {
       "id": 16,
       "appliable": false,
       "applied": false,
       "diff_lines": [
        {
         "line_code": null,
         "type": "match",
         "old_line": null,
         "new_line": null,
         "text": "@@ -90 +90",
         "meta_data": {
          "old_pos": 90,
          "new_pos": 90
         },
         "rich_text": "@@ -90 +90",
         "can_receive_suggestion": true
        },
        {
         "line_code": null,
         "type": "old",
         "old_line": 90,
         "new_line": null,
         "text": "-         * won't do anything.",
         "meta_data": null,
         "rich_text": "-<span class=\"line\" data-lang=\"cpp\">         <span class=\"o\">*</span> <span class=\"n\">w<span class=\"idiff left deletion\">on</span></span><span class=\"err\"><span class=\"idiff deletion\">'</span></span><span class=\"n\"><span class=\"idiff right deletion\">t</span></span> <span class=\"k\">do</span> <span class=\"n\">anything</span><span class=\"p\">.</span></span>\n",
         "can_receive_suggestion": false
        },
        {
         "line_code": null,
         "type": "new",
         "old_line": null,
         "new_line": 90,
         "text": "+         * will do anything.",
         "meta_data": null,
         "rich_text": "+<span class=\"line\" data-lang=\"cpp\">         <span class=\"o\">*</span> <span class=\"n\">w<span class=\"idiff left right addition\">ill</span></span> <span class=\"k\">do</span> <span class=\"n\">anything</span><span class=\"p\">.</span></span>\n",
         "can_receive_suggestion": true
        }
       ],
       "current_user": {
        "can_apply": false
       },
       "inapplicable_reason": "You don't have write access to the source branch."
      }
     ],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "```suggestion:-0+0\n         * will do anything.\n```",
     "note_html": "<div class=\"gl-relative markdown-code-block js-markdown-code\"><pre data-sourcepos=\"1:1-3:3\" data-canonical-lang=\"suggestion\" data-lang-params=\"-0+0\" class=\"code highlight js-syntax-highlight language-suggestion\" lang=\"suggestion\" v-pre=\"true\"><code class=\"js-render-suggestion\"><span id=\"LC1\" class=\"line\" lang=\"suggestion\">         * will do anything.</span></code></pre></div>",
     "body_first_line_html": "<pre class=\"code highlight js-syntax-highlight language-suggestion\" lang=\"suggestion\"><code class=\"js-render-suggestion\"><span class=\"line\" lang=\"suggestion\">         * will do anything.</span></code></pre>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "3dc902b3bb689fd5721c614ccbdc733e98188b4d",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1809",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/3dc902b3bb689fd5721c614ccbdc733e98188b4d/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=3dc902b3bb689fd5721c614ccbdc733e98188b4d&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1809/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1809"
    },
    {
     "id": "1843",
     "type": "DiffNote",
     "author": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:40:59.989Z",
     "updated_at": "2022-12-08T15:40:59.989Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "head_sha": "fa2c0da30d81e9c221c06bdc71fd14947642191b",
      "old_path": "src/net/async_fd.hpp",
      "new_path": "src/net/async_fd.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 90,
      "line_range": {
       "start": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_50_91",
        "type": "new",
        "old_line": null,
        "new_line": 91
       },
       "end": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_50_91",
        "type": "new",
        "old_line": null,
        "new_line": 91
       }
      }
     },
     "resolvable": true,
     "resolved": false,
     "resolved_by": null,
     "resolved_at": null,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "Don't we check our self whether or not the fd is valid?",
     "note_html": "<p data-sourcepos=\"1:1-1:55\" dir=\"auto\">Don't we check our self whether or not the fd is valid?</p>",
     "body_first_line_html": "<p>Don't we check our self whether or not the fd is valid?</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": true,
     "discussion_id": "3dc902b3bb689fd5721c614ccbdc733e98188b4d",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1843",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/3dc902b3bb689fd5721c614ccbdc733e98188b4d/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=3dc902b3bb689fd5721c614ccbdc733e98188b4d&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1843/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1843"
    },
    {
     "id": "1862",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T19:38:33.399Z",
     "updated_at": "2022-12-08T19:38:33.399Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "head_sha": "fa2c0da30d81e9c221c06bdc71fd14947642191b",
      "old_path": "src/net/async_fd.hpp",
      "new_path": "src/net/async_fd.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 90,
      "line_range": {
       "start": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_50_91",
        "type": "new",
        "old_line": null,
        "new_line": 91
       },
       "end": {
        "line_code": "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_50_91",
        "type": "new",
        "old_line": null,
        "new_line": 91
       }
      }
     },
     "resolvable": true,
     "resolved": false,
     "resolved_by": null,
     "resolved_at": null,
     "suggestions": [
      {
       "id": 28,
       "appliable": false,
       "applied": false,
       "diff_lines": [
        {
         "line_code": null,
         "type": "match",
         "old_line": null,
         "new_line": null,
         "text": "@@ -90 +90",
         "meta_data": {
          "old_pos": 90,
          "new_pos": 90
         },
         "rich_text": "@@ -90 +90",
         "can_receive_suggestion": true
        },
        {
         "line_code": null,
         "type": "old",
         "old_line": 90,
         "new_line": null,
         "text": "-         * won't do anything.",
         "meta_data": null,
         "rich_text": "-<span class=\"line\" data-lang=\"cpp\">         <span class=\"o\">*</span> <span class=\"n\">w<span class=\"idiff left deletion\">on</span></span><span class=\"err\"><span class=\"idiff deletion\">'</span></span><span class=\"n\"><span class=\"idiff deletion\">t</span></span> <span class=\"k\">do</span> <span class=\"n\"><span class=\"idiff right deletion\">any</span>thing</span><span class=\"p\">.</span></span>\n",
         "can_receive_suggestion": false
        },
        {
         "line_code": null,
         "type": "new",
         "old_line": null,
         "new_line": 90,
         "text": "+         * will do nothing.",
         "meta_data": null,
         "rich_text": "+<span class=\"line\" data-lang=\"cpp\">         <span class=\"o\">*</span> <span class=\"n\">w<span class=\"idiff left addition\">ill</span></span> <span class=\"k\">do</span> <span class=\"n\"><span class=\"idiff right addition\">no</span>thing</span><span class=\"p\">.</span></span>\n",
         "can_receive_suggestion": true
        }
       ],
       "current_user": {
        "can_apply": false
       },
       "inapplicable_reason": "You don't have write access to the source branch."
      }
     ],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "Yes. That's what that internal `if` is about. The change in wording avoids negation of the statement, which could be confusing to read. Unfortunately I mixed up things. Probably now without the possibility to mis-read this:\n\n```suggestion:-0+0\n         * will do nothing.\n```",
     "note_html": "<p data-sourcepos=\"1:1-1:223\" dir=\"auto\">Yes. That's what that internal <code data-sourcepos=\"1:33-1:34\">if</code> is about. The change in wording avoids negation of the statement, which could be confusing to read. Unfortunately I mixed up things. Probably now without the possibility to mis-read this:</p>\n<div class=\"gl-relative markdown-code-block js-markdown-code\"><pre data-sourcepos=\"3:1-5:3\" data-canonical-lang=\"suggestion\" data-lang-params=\"-0+0\" class=\"code highlight js-syntax-highlight language-suggestion\" lang=\"suggestion\" v-pre=\"true\"><code class=\"js-render-suggestion\"><span id=\"LC1\" class=\"line\" lang=\"suggestion\">         * will do nothing.</span></code></pre></div>",
     "body_first_line_html": "<p>Yes. That's what that internal <code>if</code> is about. The change in wording avoids negation of the statement, which could be confusi...</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "3dc902b3bb689fd5721c614ccbdc733e98188b4d",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1862",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/3dc902b3bb689fd5721c614ccbdc733e98188b4d/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=3dc902b3bb689fd5721c614ccbdc733e98188b4d&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1862/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1862"
    }
   ],
   "positions": [
    {
     "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
     "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
     "head_sha": "fa2c0da30d81e9c221c06bdc71fd14947642191b",
     "old_path": "src/net/async_fd.hpp",
     "new_path": "src/net/async_fd.hpp",
     "position_type": "text",
     "old_line": null,
     "new_line": 90,
     "line_range": null
    }
   ],
   "line_codes": [
    "31e46f6f91d4a8be87de3a688b5d2aae9913dbd6_50_90"
   ]
  },
  {
   "id": "ec6d021f30a323d5182e0504dbfb5088b1773740",
   "reply_id": "ec6d021f30a323d5182e0504dbfb5088b1773740",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": true,
   "expanded": true,
   "for_commit": false,
   "individual_note": false,
   "resolvable": true,
   "truncated_diff_lines": [
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_9_9",
     "type": null,
     "old_line": 9,
     "new_line": 9,
     "text": " ",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_10_10",
     "type": null,
     "old_line": 10,
     "new_line": 10,
     "text": " namespace rmrf::net {",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"><span class=\"k\">namespace</span> <span class=\"n\">rmrf</span><span class=\"o\">::</span><span class=\"n\">net</span> <span class=\"p\">{</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_11_11",
     "type": null,
     "old_line": 11,
     "new_line": 11,
     "text": " ",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_12_12",
     "type": "new",
     "old_line": null,
     "new_line": 12,
     "text": "+    /**",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"cm\">/**</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_12_13",
     "type": "new",
     "old_line": null,
     "new_line": 13,
     "text": "+     * This class handles raw server sockets and wrapps them with automatic",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * This class handles raw server sockets and wrapps them with automatic</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_12_14",
     "type": "new",
     "old_line": null,
     "new_line": 14,
     "text": "+     * resource management functions. This class is an internal helper class",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * resource management functions. This class is an internal helper class</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_12_15",
     "type": "new",
     "old_line": null,
     "new_line": 15,
     "text": "+     * utilized by classes like the TCP Server and thus shouldn't be used directly.",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * utilized by classes like the TCP Server and thus shouldn't be used directly.</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_12_16",
     "type": "new",
     "old_line": null,
     "new_line": 16,
     "text": "+     * @class async_server_socket",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @class async_server_socket</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_12_17",
     "type": "new",
     "old_line": null,
     "new_line": 17,
     "text": "+     * @author leondietrich",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @author leondietrich</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_12_18",
     "type": "new",
     "old_line": null,
     "new_line": 18,
     "text": "+     * @date 14/07/21",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @date 14/07/21</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_12_19",
     "type": "new",
     "old_line": null,
     "new_line": 19,
     "text": "+     * @file async_server.hpp",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @file async_server.hpp</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_12_20",
     "type": "new",
     "old_line": null,
     "new_line": 20,
     "text": "+     * @brief An asynchronous server socket handler.",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @brief An asynchronous server socket handler.</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_12_21",
     "type": "new",
     "old_line": null,
     "new_line": 21,
     "text": "+     * @see rmrf::net::tcp_server_socket",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @see rmrf::net::tcp_server_socket</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_12_22",
     "type": "new",
     "old_line": null,
     "new_line": 22,
     "text": "+     */",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     */</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_12_23",
     "type": null,
     "old_line": 12,
     "new_line": 23,
     "text": " class async_server_socket : public std::enable_shared_from_this<async_server_socket> {",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"><span class=\"k\">class</span> <span class=\"nc\">async_server_socket</span> <span class=\"o\">:</span> <span class=\"k\">public</span> <span class=\"n\">std</span><span class=\"o\">::</span><span class=\"n\">enable_shared_from_this</span><span class=\"o\">&lt;</span><span class=\"n\">async_server_socket</span><span class=\"o\">&gt;</span> <span class=\"p\">{</span></span>\n",
     "can_receive_suggestion": true
    }
   ],
   "active": true,
   "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_12_23",
   "diff_file": {
    "content_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "submodule": false,
    "submodule_link": null,
    "submodule_tree_url": null,
    "submodule_compare": null,
    "old_path_html": "src/net/async_server.hpp",
    "new_path_html": "src/net/async_server.hpp",
    "blob": {
     "id": "fe2088d3082d8dcfddcef2e9a78260ad84d945b5",
     "path": "src/net/async_server.hpp",
     "name": "async_server.hpp",
     "mode": "100644",
     "readable_text": true,
     "icon": "doc-text"
    },
    "can_modify_blob": false,
    "file_identifier_hash": "96e800a81de5e1104deafe6313cd699b2c27156a",
    "file_hash": "da5b7cac020d25525be7e83660f86bf49ee93a56",
    "file_path": "src/net/async_server.hpp",
    "old_path": "src/net/async_server.hpp",
    "new_path": "src/net/async_server.hpp",
    "new_file": false,
    "renamed_file": false,
    "deleted_file": false,
    "diff_refs": {
     "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
     "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
     "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422"
    },
    "stored_externally": null,
    "external_storage": null,
    "mode_changed": false,
    "a_mode": "100644",
    "b_mode": "100644",
    "viewer": {
     "name": "text",
     "error": null,
     "error_message": null,
     "collapsed": false,
     "expandable": true,
     "generated": null,
     "whitespace_only": null
    },
    "alternate_viewer": null,
    "old_size": 798,
    "new_size": 2467
   },
   "position": {
    "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
    "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
    "head_sha": "fa2c0da30d81e9c221c06bdc71fd14947642191b",
    "old_path": "src/net/async_server.hpp",
    "new_path": "src/net/async_server.hpp",
    "position_type": "text",
    "old_line": 12,
    "new_line": 23,
    "line_range": {
     "start": {
      "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_12_12",
      "type": "new",
      "old_line": null,
      "new_line": 12
     },
     "end": {
      "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_12_23",
      "type": null,
      "old_line": 12,
      "new_line": 23
     }
    }
   },
   "original_position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "old_path": "src/net/async_server.hpp",
    "new_path": "src/net/async_server.hpp",
    "position_type": "text",
    "old_line": 12,
    "new_line": 23,
    "line_range": {
     "start": {
      "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_12_12",
      "type": "new",
      "old_line": null,
      "new_line": 12
     },
     "end": {
      "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_12_23",
      "type": null,
      "old_line": 12,
      "new_line": 23
     }
    }
   },
   "discussion_path": "/ReadMailReallyFast/code/-/merge_requests/1/diffs#da5b7cac020d25525be7e83660f86bf49ee93a56_12_23",
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/ec6d021f30a323d5182e0504dbfb5088b1773740/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=ec6d021f30a323d5182e0504dbfb5088b1773740&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "notes": [
    {
     "id": "1810",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:16:03.221Z",
     "updated_at": "2022-12-08T15:16:03.221Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "head_sha": "fa2c0da30d81e9c221c06bdc71fd14947642191b",
      "old_path": "src/net/async_server.hpp",
      "new_path": "src/net/async_server.hpp",
      "position_type": "text",
      "old_line": 12,
      "new_line": 23,
      "line_range": {
       "start": {
        "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_12_12",
        "type": "new",
        "old_line": null,
        "new_line": 12
       },
       "end": {
        "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_12_23",
        "type": null,
        "old_line": 12,
        "new_line": 23
       }
      }
     },
     "resolvable": true,
     "resolved": false,
     "resolved_by": null,
     "resolved_at": null,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "Indentation should align for documentation comments with the statement they are documenting.",
     "note_html": "<p data-sourcepos=\"1:1-1:92\" dir=\"auto\">Indentation should align for documentation comments with the statement they are documenting.</p>",
     "body_first_line_html": "<p>Indentation should align for documentation comments with the statement they are documenting.</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "ec6d021f30a323d5182e0504dbfb5088b1773740",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1810",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/ec6d021f30a323d5182e0504dbfb5088b1773740/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=ec6d021f30a323d5182e0504dbfb5088b1773740&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1810/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1810"
    }
   ],
   "positions": [
    {
     "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
     "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
     "head_sha": "a61acfd261762f4522458cf245eb914162105feb",
     "old_path": "src/net/async_server.hpp",
     "new_path": "src/net/async_server.hpp",
     "position_type": "text",
     "old_line": 12,
     "new_line": 23,
     "line_range": null
    }
   ],
   "line_codes": [
    "da5b7cac020d25525be7e83660f86bf49ee93a56_12_23"
   ]
  },
  {
   "id": "e72502970efbf565cce866ab9949ed0e935cebad",
   "reply_id": "e72502970efbf565cce866ab9949ed0e935cebad",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": true,
   "expanded": true,
   "for_commit": false,
   "individual_note": false,
   "resolvable": true,
   "truncated_diff_lines": [
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_25_36",
     "type": null,
     "old_line": 25,
     "new_line": 36,
     "text": "     ::ev::io io;",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\">    <span class=\"o\">::</span><span class=\"n\">ev</span><span class=\"o\">::</span><span class=\"n\">io</span> <span class=\"n\">io</span><span class=\"p\">;</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_26_37",
     "type": null,
     "old_line": 26,
     "new_line": 37,
     "text": " ",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_27_38",
     "type": null,
     "old_line": 27,
     "new_line": 38,
     "text": " public:",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"><span class=\"nl\">public:</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_28_39",
     "type": "new",
     "old_line": null,
     "new_line": 39,
     "text": "+",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_28_40",
     "type": "new",
     "old_line": null,
     "new_line": 40,
     "text": "+    /**",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"cm\">/**</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_28_41",
     "type": "new",
     "old_line": null,
     "new_line": 41,
     "text": "+      * This constructor accepts your given file descriptor to the operating systems socket.",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">      * This constructor accepts your given file descriptor to the operating systems socket.</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_28_42",
     "type": "new",
     "old_line": null,
     "new_line": 42,
     "text": "+      * @param fd A handle to the socket in form of an auto_fd",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">      * @param fd A handle to the socket in form of an auto_fd</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_28_43",
     "type": "new",
     "old_line": null,
     "new_line": 43,
     "text": "+      */",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">      */</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_28_44",
     "type": null,
     "old_line": 28,
     "new_line": 44,
     "text": "     async_server_socket(auto_fd &&fd);",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\">    <span class=\"n\">async_server_socket</span><span class=\"p\">(</span><span class=\"n\">auto_fd</span> <span class=\"o\">&amp;&amp;</span><span class=\"n\">fd</span><span class=\"p\">);</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_29_45",
     "type": "new",
     "old_line": null,
     "new_line": 45,
     "text": "+    ",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    </span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_29_46",
     "type": "new",
     "old_line": null,
     "new_line": 46,
     "text": "+    /**",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"cm\">/**</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_29_47",
     "type": "new",
     "old_line": null,
     "new_line": 47,
     "text": "+     * This deconstructor automatically unregisteres the socket from libev which in turn automatically removes it from",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * This deconstructor automatically unregisteres the socket from libev which in turn automatically removes it from</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_29_48",
     "type": "new",
     "old_line": null,
     "new_line": 48,
     "text": "+     * the watch list of active sockets. However this does not close the socket in the kernels perspective so you must",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * the watch list of active sockets. However this does not close the socket in the kernels perspective so you must</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_29_49",
     "type": "new",
     "old_line": null,
     "new_line": 49,
     "text": "+     * use always auto_fd.",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * use always auto_fd.</span></span>\n",
     "can_receive_suggestion": true
    }
   ],
   "active": false,
   "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_29_49",
   "diff_file": {
    "content_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "submodule": false,
    "submodule_link": null,
    "submodule_tree_url": null,
    "submodule_compare": null,
    "old_path_html": "src/net/async_server.hpp",
    "new_path_html": "src/net/async_server.hpp",
    "blob": {
     "id": "fe2088d3082d8dcfddcef2e9a78260ad84d945b5",
     "path": "src/net/async_server.hpp",
     "name": "async_server.hpp",
     "mode": "100644",
     "readable_text": true,
     "icon": "doc-text"
    },
    "can_modify_blob": false,
    "file_identifier_hash": "96e800a81de5e1104deafe6313cd699b2c27156a",
    "file_hash": "da5b7cac020d25525be7e83660f86bf49ee93a56",
    "file_path": "src/net/async_server.hpp",
    "old_path": "src/net/async_server.hpp",
    "new_path": "src/net/async_server.hpp",
    "new_file": false,
    "renamed_file": false,
    "deleted_file": false,
    "diff_refs": {
     "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
     "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
     "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422"
    },
    "stored_externally": null,
    "external_storage": null,
    "mode_changed": false,
    "a_mode": "100644",
    "b_mode": "100644",
    "viewer": {
     "name": "text",
     "error": null,
     "error_message": null,
     "collapsed": false,
     "expandable": true,
     "generated": null,
     "whitespace_only": null
    },
    "alternate_viewer": null,
    "old_size": 798,
    "new_size": 2467
   },
   "position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "7962e9e4a88484b5bc782c339a641ce6c1303461",
    "old_path": "src/net/async_server.hpp",
    "new_path": "src/net/async_server.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 49,
    "line_range": {
     "start": {
      "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_29_47",
      "type": "new",
      "old_line": null,
      "new_line": 47
     },
     "end": {
      "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_29_49",
      "type": "new",
      "old_line": null,
      "new_line": 49
     }
    }
   },
   "original_position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "old_path": "src/net/async_server.hpp",
    "new_path": "src/net/async_server.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 49,
    "line_range": {
     "start": {
      "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_29_47",
      "type": "new",
      "old_line": null,
      "new_line": 47
     },
     "end": {
      "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_29_49",
      "type": "new",
      "old_line": null,
      "new_line": 49
     }
    }
   },
   "discussion_path": "/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=528#da5b7cac020d25525be7e83660f86bf49ee93a56_29_49",
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/e72502970efbf565cce866ab9949ed0e935cebad/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=e72502970efbf565cce866ab9949ed0e935cebad&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "notes": [
    {
     "id": "1811",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:16:03.268Z",
     "updated_at": "2022-12-08T15:16:03.268Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "7962e9e4a88484b5bc782c339a641ce6c1303461",
      "old_path": "src/net/async_server.hpp",
      "new_path": "src/net/async_server.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 49,
      "line_range": {
       "start": {
        "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_29_47",
        "type": "new",
        "old_line": null,
        "new_line": 47
       },
       "end": {
        "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_29_49",
        "type": "new",
        "old_line": null,
        "new_line": 49
       }
      }
     },
     "resolvable": true,
     "resolved": false,
     "resolved_by": null,
     "resolved_at": null,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "Closing is performed as part of the `auto_fd` dtor and should be documented that way. Internally the type system should only allow `auto_fd`/`null_fd` anyway, thus eliminating the risk from raw FDs.",
     "note_html": "<p data-sourcepos=\"1:1-1:198\" dir=\"auto\">Closing is performed as part of the <code data-sourcepos=\"1:38-1:44\">auto_fd</code> dtor and should be documented that way. Internally the type system should only allow <code data-sourcepos=\"1:133-1:139\">auto_fd</code>/<code data-sourcepos=\"1:143-1:149\">null_fd</code> anyway, thus eliminating the risk from raw FDs.</p>",
     "body_first_line_html": "<p>Closing is performed as part of the <code>auto_fd</code> dtor and should be documented that way. Internally the type system should only...</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "e72502970efbf565cce866ab9949ed0e935cebad",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1811",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/e72502970efbf565cce866ab9949ed0e935cebad/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=e72502970efbf565cce866ab9949ed0e935cebad&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1811/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1811"
    },
    {
     "id": "1875",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2023-01-03T21:29:24.373Z",
     "updated_at": "2023-01-03T21:29:24.373Z",
     "system": true,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "7962e9e4a88484b5bc782c339a641ce6c1303461",
      "old_path": "src/net/async_server.hpp",
      "new_path": "src/net/async_server.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 49,
      "line_range": {
       "start": {
        "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_29_47",
        "type": "new",
        "old_line": null,
        "new_line": 47
       },
       "end": {
        "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_29_49",
        "type": "new",
        "old_line": null,
        "new_line": 49
       }
      }
     },
     "resolvable": false,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "changed this line in [version 6 of the diff](/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=534&start_sha=7962e9e4a88484b5bc782c339a641ce6c1303461#da5b7cac020d25525be7e83660f86bf49ee93a56_49_40)",
     "note_html": "<p data-sourcepos=\"1:1-1:205\" dir=\"auto\">changed this line in <a data-sourcepos=\"1:22-1:205\" href=\"/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=534&amp;start_sha=7962e9e4a88484b5bc782c339a641ce6c1303461#da5b7cac020d25525be7e83660f86bf49ee93a56_49_40\">version 6 of the diff</a></p>",
     "body_first_line_html": "<p>changed this line in version 6 of the diff</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "pencil",
     "outdated_line_change_path": "/ReadMailReallyFast/code/notes/1875/outdated_line_change",
     "is_noteable_author": false,
     "discussion_id": "e72502970efbf565cce866ab9949ed0e935cebad",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1875",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "path": "/ReadMailReallyFast/code/notes/1875"
    }
   ],
   "positions": [],
   "line_codes": []
  },
  {
   "id": "0d1a1b76e8d80d7e0da0fdfbedb7af00ad0ee7f0",
   "reply_id": "0d1a1b76e8d80d7e0da0fdfbedb7af00ad0ee7f0",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": true,
   "expanded": true,
   "for_commit": false,
   "individual_note": false,
   "resolvable": true,
   "truncated_diff_lines": [
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_29_48",
     "type": "new",
     "old_line": null,
     "new_line": 48,
     "text": "+     * the watch list of active sockets. However this does not close the socket in the kernels perspective so you must",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * the watch list of active sockets. However this does not close the socket in the kernels perspective so you must</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_29_49",
     "type": "new",
     "old_line": null,
     "new_line": 49,
     "text": "+     * use always auto_fd.",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * use always auto_fd.</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_29_50",
     "type": "new",
     "old_line": null,
     "new_line": 50,
     "text": "+     * @brief Automatically unregister the socket from libev",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @brief Automatically unregister the socket from libev</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_29_51",
     "type": "new",
     "old_line": null,
     "new_line": 51,
     "text": "+     */",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     */</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_29_52",
     "type": null,
     "old_line": 29,
     "new_line": 52,
     "text": "     ~async_server_socket();",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\">    <span class=\"o\">~</span><span class=\"n\">async_server_socket</span><span class=\"p\">();</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_30_53",
     "type": null,
     "old_line": 30,
     "new_line": 53,
     "text": " ",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_31_54",
     "type": "old",
     "old_line": 31,
     "new_line": null,
     "text": "-\taccept_handler_type get_accept_handler() const;",
     "meta_data": null,
     "rich_text": "-<span class=\"line\" data-lang=\"cpp\">\t<span class=\"n\">accept_handler_type</span> <span class=\"n\">get_accept_handler</span><span class=\"p\">()</span> <span class=\"k\">const</span><span class=\"p\">;</span></span>\n",
     "can_receive_suggestion": false
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_32_54",
     "type": "old",
     "old_line": 32,
     "new_line": null,
     "text": "-\tvoid set_accept_handler(const accept_handler_type &value);",
     "meta_data": null,
     "rich_text": "-<span class=\"line\" data-lang=\"cpp\">\t<span class=\"kt\">void</span> <span class=\"n\">set_accept_handler</span><span class=\"p\">(</span><span class=\"k\">const</span> <span class=\"n\">accept_handler_type</span> <span class=\"o\">&amp;</span><span class=\"n\">value</span><span class=\"p\">);</span></span>\n",
     "can_receive_suggestion": false
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_54",
     "type": "new",
     "old_line": null,
     "new_line": 54,
     "text": "+    /**",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"cm\">/**</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_55",
     "type": "new",
     "old_line": null,
     "new_line": 55,
     "text": "+     * This method will return the currently used connection acceptance handler.",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * This method will return the currently used connection acceptance handler.</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_56",
     "type": "new",
     "old_line": null,
     "new_line": 56,
     "text": "+     * Be aware that it will return an invalid state unless you used set_accept_handler",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * Be aware that it will return an invalid state unless you used set_accept_handler</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_57",
     "type": "new",
     "old_line": null,
     "new_line": 57,
     "text": "+     * prior to calling this method.",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * prior to calling this method.</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_58",
     "type": "new",
     "old_line": null,
     "new_line": 58,
     "text": "+     * @brief get the current registered accept handler",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @brief get the current registered accept handler</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_59",
     "type": "new",
     "old_line": null,
     "new_line": 59,
     "text": "+     * @return The current accept handler",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @return The current accept handler</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_60",
     "type": "new",
     "old_line": null,
     "new_line": 60,
     "text": "+     */",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     */</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_61",
     "type": "new",
     "old_line": null,
     "new_line": 61,
     "text": "+\tinline accept_handler_type get_accept_handler() const {",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">\t<span class=\"kr\">inline</span> <span class=\"n\">accept_handler_type</span> <span class=\"n\">get_accept_handler</span><span class=\"p\">()</span> <span class=\"k\">const</span> <span class=\"p\">{</span></span>\n",
     "can_receive_suggestion": true
    }
   ],
   "active": false,
   "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_61",
   "diff_file": {
    "content_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "submodule": false,
    "submodule_link": null,
    "submodule_tree_url": null,
    "submodule_compare": null,
    "old_path_html": "src/net/async_server.hpp",
    "new_path_html": "src/net/async_server.hpp",
    "blob": {
     "id": "fe2088d3082d8dcfddcef2e9a78260ad84d945b5",
     "path": "src/net/async_server.hpp",
     "name": "async_server.hpp",
     "mode": "100644",
     "readable_text": true,
     "icon": "doc-text"
    },
    "can_modify_blob": false,
    "file_identifier_hash": "96e800a81de5e1104deafe6313cd699b2c27156a",
    "file_hash": "da5b7cac020d25525be7e83660f86bf49ee93a56",
    "file_path": "src/net/async_server.hpp",
    "old_path": "src/net/async_server.hpp",
    "new_path": "src/net/async_server.hpp",
    "new_file": false,
    "renamed_file": false,
    "deleted_file": false,
    "diff_refs": {
     "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
     "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
     "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422"
    },
    "stored_externally": null,
    "external_storage": null,
    "mode_changed": false,
    "a_mode": "100644",
    "b_mode": "100644",
    "viewer": {
     "name": "text",
     "error": null,
     "error_message": null,
     "collapsed": false,
     "expandable": true,
     "generated": null,
     "whitespace_only": null
    },
    "alternate_viewer": null,
    "old_size": 798,
    "new_size": 2467
   },
   "position": {
    "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
    "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
    "head_sha": "2e411a9d57cb74c098f67d82f8f02eb7d6164afc",
    "old_path": "src/net/async_server.hpp",
    "new_path": "src/net/async_server.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 61,
    "line_range": {
     "start": {
      "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_61",
      "type": "new",
      "old_line": null,
      "new_line": 61
     },
     "end": {
      "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_61",
      "type": "new",
      "old_line": null,
      "new_line": 61
     }
    }
   },
   "original_position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "old_path": "src/net/async_server.hpp",
    "new_path": "src/net/async_server.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 61,
    "line_range": {
     "start": {
      "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_61",
      "type": "new",
      "old_line": null,
      "new_line": 61
     },
     "end": {
      "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_61",
      "type": "new",
      "old_line": null,
      "new_line": 61
     }
    }
   },
   "discussion_path": "/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=588#da5b7cac020d25525be7e83660f86bf49ee93a56_33_61",
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/0d1a1b76e8d80d7e0da0fdfbedb7af00ad0ee7f0/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=0d1a1b76e8d80d7e0da0fdfbedb7af00ad0ee7f0&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "notes": [
    {
     "id": "1812",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:16:03.319Z",
     "updated_at": "2022-12-08T15:16:03.319Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "head_sha": "2e411a9d57cb74c098f67d82f8f02eb7d6164afc",
      "old_path": "src/net/async_server.hpp",
      "new_path": "src/net/async_server.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 61,
      "line_range": {
       "start": {
        "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_61",
        "type": "new",
        "old_line": null,
        "new_line": 61
       },
       "end": {
        "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_61",
        "type": "new",
        "old_line": null,
        "new_line": 61
       }
      }
     },
     "resolvable": true,
     "resolved": false,
     "resolved_by": null,
     "resolved_at": null,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "Indentation.",
     "note_html": "<p data-sourcepos=\"1:1-1:12\" dir=\"auto\">Indentation.</p>",
     "body_first_line_html": "<p>Indentation.</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "0d1a1b76e8d80d7e0da0fdfbedb7af00ad0ee7f0",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1812",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/0d1a1b76e8d80d7e0da0fdfbedb7af00ad0ee7f0/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=0d1a1b76e8d80d7e0da0fdfbedb7af00ad0ee7f0&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1812/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1812"
    },
    {
     "id": "1956",
     "type": "DiffNote",
     "author": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2023-02-26T20:37:13.535Z",
     "updated_at": "2023-02-26T20:37:13.535Z",
     "system": true,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "head_sha": "2e411a9d57cb74c098f67d82f8f02eb7d6164afc",
      "old_path": "src/net/async_server.hpp",
      "new_path": "src/net/async_server.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 61,
      "line_range": {
       "start": {
        "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_61",
        "type": "new",
        "old_line": null,
        "new_line": 61
       },
       "end": {
        "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_61",
        "type": "new",
        "old_line": null,
        "new_line": 61
       }
      }
     },
     "resolvable": false,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "changed this line in [version 34 of the diff](/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=596&start_sha=2e411a9d57cb74c098f67d82f8f02eb7d6164afc#da5b7cac020d25525be7e83660f86bf49ee93a56_61_40)",
     "note_html": "<p data-sourcepos=\"1:1-1:206\" dir=\"auto\">changed this line in <a data-sourcepos=\"1:22-1:206\" href=\"/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=596&amp;start_sha=2e411a9d57cb74c098f67d82f8f02eb7d6164afc#da5b7cac020d25525be7e83660f86bf49ee93a56_61_40\">version 34 of the diff</a></p>",
     "body_first_line_html": "<p>changed this line in version 34 of the diff</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "pencil",
     "outdated_line_change_path": "/ReadMailReallyFast/code/notes/1956/outdated_line_change",
     "is_noteable_author": true,
     "discussion_id": "0d1a1b76e8d80d7e0da0fdfbedb7af00ad0ee7f0",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1956",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "path": "/ReadMailReallyFast/code/notes/1956"
    }
   ],
   "positions": [
    {
     "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
     "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
     "head_sha": "a61acfd261762f4522458cf245eb914162105feb",
     "old_path": "src/net/async_server.hpp",
     "new_path": "src/net/async_server.hpp",
     "position_type": "text",
     "old_line": null,
     "new_line": 61,
     "line_range": null
    }
   ],
   "line_codes": [
    "da5b7cac020d25525be7e83660f86bf49ee93a56_33_61"
   ]
  },
  {
   "id": "dd373ea19868c4eb9122ef4a2cc253d448b8a5b6",
   "reply_id": "dd373ea19868c4eb9122ef4a2cc253d448b8a5b6",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": true,
   "expanded": true,
   "for_commit": false,
   "individual_note": false,
   "resolvable": true,
   "truncated_diff_lines": [
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_57",
     "type": "new",
     "old_line": null,
     "new_line": 57,
     "text": "+     * prior to calling this method.",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * prior to calling this method.</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_58",
     "type": "new",
     "old_line": null,
     "new_line": 58,
     "text": "+     * @brief get the current registered accept handler",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @brief get the current registered accept handler</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_59",
     "type": "new",
     "old_line": null,
     "new_line": 59,
     "text": "+     * @return The current accept handler",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @return The current accept handler</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_60",
     "type": "new",
     "old_line": null,
     "new_line": 60,
     "text": "+     */",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     */</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_61",
     "type": "new",
     "old_line": null,
     "new_line": 61,
     "text": "+\tinline accept_handler_type get_accept_handler() const {",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">\t<span class=\"kr\">inline</span> <span class=\"n\">accept_handler_type</span> <span class=\"n\">get_accept_handler</span><span class=\"p\">()</span> <span class=\"k\">const</span> <span class=\"p\">{</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_62",
     "type": "new",
     "old_line": null,
     "new_line": 62,
     "text": "+        return on_accept;",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">        <span class=\"k\">return</span> <span class=\"n\">on_accept</span><span class=\"p\">;</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_63",
     "type": "new",
     "old_line": null,
     "new_line": 63,
     "text": "+    }",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"p\">}</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_64",
     "type": "new",
     "old_line": null,
     "new_line": 64,
     "text": "+    ",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    </span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_65",
     "type": "new",
     "old_line": null,
     "new_line": 65,
     "text": "+    /**",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"cm\">/**</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_66",
     "type": "new",
     "old_line": null,
     "new_line": 66,
     "text": "+     * Use this method in order to set a new incomming socket acceptance handler.",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * Use this method in order to set a new incomming socket acceptance handler.</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_67",
     "type": "new",
     "old_line": null,
     "new_line": 67,
     "text": "+     * It's best to call this method right after the constructor call of this class.",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * It's best to call this method right after the constructor call of this class.</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_68",
     "type": "new",
     "old_line": null,
     "new_line": 68,
     "text": "+     * @brief Set a new acceptance handler",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @brief Set a new acceptance handler</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_69",
     "type": "new",
     "old_line": null,
     "new_line": 69,
     "text": "+     * @param value The new handler to set",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @param value The new handler to set</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_70",
     "type": "new",
     "old_line": null,
     "new_line": 70,
     "text": "+     */",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     */</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_71",
     "type": "new",
     "old_line": null,
     "new_line": 71,
     "text": "+\tinline void set_accept_handler(",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">\t<span class=\"kr\">inline</span> <span class=\"kt\">void</span> <span class=\"nf\">set_accept_handler</span><span class=\"p\">(</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_72",
     "type": "new",
     "old_line": null,
     "new_line": 72,
     "text": "+            const accept_handler_type& value) {",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">            <span class=\"k\">const</span> <span class=\"n\">accept_handler_type</span><span class=\"o\">&amp;</span> <span class=\"n\">value</span><span class=\"p\">)</span> <span class=\"p\">{</span></span>\n",
     "can_receive_suggestion": true
    }
   ],
   "active": false,
   "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_72",
   "diff_file": {
    "content_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "submodule": false,
    "submodule_link": null,
    "submodule_tree_url": null,
    "submodule_compare": null,
    "old_path_html": "src/net/async_server.hpp",
    "new_path_html": "src/net/async_server.hpp",
    "blob": {
     "id": "fe2088d3082d8dcfddcef2e9a78260ad84d945b5",
     "path": "src/net/async_server.hpp",
     "name": "async_server.hpp",
     "mode": "100644",
     "readable_text": true,
     "icon": "doc-text"
    },
    "can_modify_blob": false,
    "file_identifier_hash": "96e800a81de5e1104deafe6313cd699b2c27156a",
    "file_hash": "da5b7cac020d25525be7e83660f86bf49ee93a56",
    "file_path": "src/net/async_server.hpp",
    "old_path": "src/net/async_server.hpp",
    "new_path": "src/net/async_server.hpp",
    "new_file": false,
    "renamed_file": false,
    "deleted_file": false,
    "diff_refs": {
     "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
     "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
     "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422"
    },
    "stored_externally": null,
    "external_storage": null,
    "mode_changed": false,
    "a_mode": "100644",
    "b_mode": "100644",
    "viewer": {
     "name": "text",
     "error": null,
     "error_message": null,
     "collapsed": false,
     "expandable": true,
     "generated": null,
     "whitespace_only": null
    },
    "alternate_viewer": null,
    "old_size": 798,
    "new_size": 2467
   },
   "position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "7962e9e4a88484b5bc782c339a641ce6c1303461",
    "old_path": "src/net/async_server.hpp",
    "new_path": "src/net/async_server.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 72,
    "line_range": {
     "start": {
      "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_71",
      "type": "new",
      "old_line": null,
      "new_line": 71
     },
     "end": {
      "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_72",
      "type": "new",
      "old_line": null,
      "new_line": 72
     }
    }
   },
   "original_position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "old_path": "src/net/async_server.hpp",
    "new_path": "src/net/async_server.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 72,
    "line_range": {
     "start": {
      "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_71",
      "type": "new",
      "old_line": null,
      "new_line": 71
     },
     "end": {
      "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_72",
      "type": "new",
      "old_line": null,
      "new_line": 72
     }
    }
   },
   "discussion_path": "/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=528#da5b7cac020d25525be7e83660f86bf49ee93a56_33_72",
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/dd373ea19868c4eb9122ef4a2cc253d448b8a5b6/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=dd373ea19868c4eb9122ef4a2cc253d448b8a5b6&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "notes": [
    {
     "id": "1813",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:16:03.375Z",
     "updated_at": "2022-12-08T15:16:03.375Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "7962e9e4a88484b5bc782c339a641ce6c1303461",
      "old_path": "src/net/async_server.hpp",
      "new_path": "src/net/async_server.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 72,
      "line_range": {
       "start": {
        "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_71",
        "type": "new",
        "old_line": null,
        "new_line": 71
       },
       "end": {
        "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_72",
        "type": "new",
        "old_line": null,
        "new_line": 72
       }
      }
     },
     "resolvable": true,
     "resolved": false,
     "resolved_by": null,
     "resolved_at": null,
     "suggestions": [
      {
       "id": 17,
       "appliable": false,
       "applied": false,
       "diff_lines": [
        {
         "line_code": null,
         "type": "match",
         "old_line": null,
         "new_line": null,
         "text": "@@ -71 +71",
         "meta_data": {
          "old_pos": 71,
          "new_pos": 71
         },
         "rich_text": "@@ -71 +71",
         "can_receive_suggestion": true
        },
        {
         "line_code": null,
         "type": "old",
         "old_line": 71,
         "new_line": null,
         "text": "-\tinline void set_accept_handler(",
         "meta_data": null,
         "rich_text": "-<span class=\"line\" data-lang=\"cpp\">\t<span class=\"kr\">inline</span> <span class=\"kt\">void</span> <span class=\"n\">set_accept_handler</span><span class=\"p\">(</span></span>\n",
         "can_receive_suggestion": false
        },
        {
         "line_code": null,
         "type": "old",
         "old_line": 72,
         "new_line": null,
         "text": "-            const accept_handler_type& value) {",
         "meta_data": null,
         "rich_text": "-<span class=\"line\" data-lang=\"cpp\">            <span class=\"k\">const</span> <span class=\"n\">accept_handler_type</span><span class=\"o\">&amp;</span> <span class=\"n\">value</span><span class=\"p\">)</span> <span class=\"p\">{</span></span>\n",
         "can_receive_suggestion": false
        },
        {
         "line_code": null,
         "type": "new",
         "old_line": null,
         "new_line": 71,
         "text": "+    inline void set_accept_handler(const accept_handler_type& value) {",
         "meta_data": null,
         "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"kr\">inline</span> <span class=\"kt\">void</span> <span class=\"nf\">set_accept_handler</span><span class=\"p\">(</span><span class=\"k\">const</span> <span class=\"n\">accept_handler_type</span><span class=\"o\">&amp;</span> <span class=\"n\">value</span><span class=\"p\">)</span> <span class=\"p\">{</span></span>\n",
         "can_receive_suggestion": true
        }
       ],
       "current_user": {
        "can_apply": false
       },
       "inapplicable_reason": "You don't have write access to the source branch."
      }
     ],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "```suggestion:-1+0\n    inline void set_accept_handler(const accept_handler_type& value) {\n```",
     "note_html": "<div class=\"gl-relative markdown-code-block js-markdown-code\"><pre data-sourcepos=\"1:1-3:3\" data-canonical-lang=\"suggestion\" data-lang-params=\"-1+0\" class=\"code highlight js-syntax-highlight language-suggestion\" lang=\"suggestion\" v-pre=\"true\"><code class=\"js-render-suggestion\"><span id=\"LC1\" class=\"line\" lang=\"suggestion\">    inline void set_accept_handler(const accept_handler_type&amp; value) {</span></code></pre></div>",
     "body_first_line_html": "<pre class=\"code highlight js-syntax-highlight language-suggestion\" lang=\"suggestion\"><code class=\"js-render-suggestion\"><span class=\"line\" lang=\"suggestion\">    inline void set_accept_handler(const accept_handler_type&amp; value) {</span></code></pre>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "dd373ea19868c4eb9122ef4a2cc253d448b8a5b6",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1813",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/dd373ea19868c4eb9122ef4a2cc253d448b8a5b6/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=dd373ea19868c4eb9122ef4a2cc253d448b8a5b6&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1813/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1813"
    },
    {
     "id": "1876",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2023-01-03T21:29:24.454Z",
     "updated_at": "2023-01-03T21:29:24.454Z",
     "system": true,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "7962e9e4a88484b5bc782c339a641ce6c1303461",
      "old_path": "src/net/async_server.hpp",
      "new_path": "src/net/async_server.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 72,
      "line_range": {
       "start": {
        "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_71",
        "type": "new",
        "old_line": null,
        "new_line": 71
       },
       "end": {
        "line_code": "da5b7cac020d25525be7e83660f86bf49ee93a56_33_72",
        "type": "new",
        "old_line": null,
        "new_line": 72
       }
      }
     },
     "resolvable": false,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "changed this line in [version 6 of the diff](/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=534&start_sha=7962e9e4a88484b5bc782c339a641ce6c1303461#da5b7cac020d25525be7e83660f86bf49ee93a56_72_72)",
     "note_html": "<p data-sourcepos=\"1:1-1:205\" dir=\"auto\">changed this line in <a data-sourcepos=\"1:22-1:205\" href=\"/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=534&amp;start_sha=7962e9e4a88484b5bc782c339a641ce6c1303461#da5b7cac020d25525be7e83660f86bf49ee93a56_72_72\">version 6 of the diff</a></p>",
     "body_first_line_html": "<p>changed this line in version 6 of the diff</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "pencil",
     "outdated_line_change_path": "/ReadMailReallyFast/code/notes/1876/outdated_line_change",
     "is_noteable_author": false,
     "discussion_id": "dd373ea19868c4eb9122ef4a2cc253d448b8a5b6",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1876",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "path": "/ReadMailReallyFast/code/notes/1876"
    }
   ],
   "positions": [],
   "line_codes": []
  },
  {
   "id": "2815dafc4d798476327b80005266805f24a05032",
   "reply_id": "2815dafc4d798476327b80005266805f24a05032",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": true,
   "expanded": false,
   "for_commit": false,
   "individual_note": false,
   "resolvable": true,
   "active": true,
   "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_14_18",
   "diff_file": {
    "content_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "submodule": false,
    "submodule_link": null,
    "submodule_tree_url": null,
    "submodule_compare": null,
    "old_path_html": "src/net/connection_client.hpp",
    "new_path_html": "src/net/connection_client.hpp",
    "blob": {
     "id": "4daacd96e9c8b33971930466660bcaf2ee215979",
     "path": "src/net/connection_client.hpp",
     "name": "connection_client.hpp",
     "mode": "100644",
     "readable_text": true,
     "icon": "doc-text"
    },
    "can_modify_blob": false,
    "file_identifier_hash": "2a8c99a065a3eeb6752e3bd56a65ff7caf3ebe4c",
    "file_hash": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd",
    "file_path": "src/net/connection_client.hpp",
    "old_path": "src/net/connection_client.hpp",
    "new_path": "src/net/connection_client.hpp",
    "new_file": false,
    "renamed_file": false,
    "deleted_file": false,
    "diff_refs": {
     "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
     "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
     "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422"
    },
    "stored_externally": null,
    "external_storage": null,
    "mode_changed": false,
    "a_mode": "100644",
    "b_mode": "100644",
    "viewer": {
     "name": "text",
     "error": null,
     "error_message": null,
     "collapsed": false,
     "expandable": true,
     "generated": null,
     "whitespace_only": null
    },
    "alternate_viewer": null,
    "old_size": 819,
    "new_size": 1214
   },
   "position": {
    "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
    "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
    "head_sha": "fa2c0da30d81e9c221c06bdc71fd14947642191b",
    "old_path": "src/net/connection_client.hpp",
    "new_path": "src/net/connection_client.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 18,
    "line_range": {
     "start": {
      "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_14_14",
      "type": "new",
      "old_line": null,
      "new_line": 14
     },
     "end": {
      "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_14_18",
      "type": "new",
      "old_line": null,
      "new_line": 18
     }
    }
   },
   "original_position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "old_path": "src/net/connection_client.hpp",
    "new_path": "src/net/connection_client.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 18,
    "line_range": {
     "start": {
      "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_14_14",
      "type": "new",
      "old_line": null,
      "new_line": 14
     },
     "end": {
      "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_14_18",
      "type": "new",
      "old_line": null,
      "new_line": 18
     }
    }
   },
   "discussion_path": "/ReadMailReallyFast/code/-/merge_requests/1/diffs#6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_14_18",
   "resolved": true,
   "resolved_by_push": false,
   "resolved_by": {
    "id": 32,
    "username": "doralitze",
    "public_email": "",
    "name": "Leon Dietrich",
    "state": "active",
    "locked": false,
    "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
    "show_status": false,
    "path": "/doralitze",
    "bot": false,
    "user_type": "human"
   },
   "resolved_at": "2022-12-08T16:00:31.171Z",
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/2815dafc4d798476327b80005266805f24a05032/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=2815dafc4d798476327b80005266805f24a05032&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "truncated_diff_lines_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/2815dafc4d798476327b80005266805f24a05032",
   "notes": [
    {
     "id": "1814",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:16:03.447Z",
     "updated_at": "2022-12-08T15:16:03.447Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "head_sha": "fa2c0da30d81e9c221c06bdc71fd14947642191b",
      "old_path": "src/net/connection_client.hpp",
      "new_path": "src/net/connection_client.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 18,
      "line_range": {
       "start": {
        "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_14_14",
        "type": "new",
        "old_line": null,
        "new_line": 14
       },
       "end": {
        "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_14_18",
        "type": "new",
        "old_line": null,
        "new_line": 18
       }
      }
     },
     "resolvable": true,
     "resolved": true,
     "resolved_by": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "show_status": false,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "resolved_at": "2022-12-08T16:00:31.171Z",
     "suggestions": [
      {
       "id": 18,
       "appliable": false,
       "applied": true,
       "diff_lines": [
        {
         "line_code": null,
         "type": "match",
         "old_line": null,
         "new_line": null,
         "text": "@@ -14 +14",
         "meta_data": {
          "old_pos": 14,
          "new_pos": 14
         },
         "rich_text": "@@ -14 +14",
         "can_receive_suggestion": true
        },
        {
         "line_code": null,
         "type": "old",
         "old_line": 14,
         "new_line": null,
         "text": "-#if EAGAIN != EWOULDBLOCK",
         "meta_data": null,
         "rich_text": "-<span class=\"line\" data-lang=\"cpp\"><span class=\"cp\">#if EAGAIN != EWOULDBLOCK</span></span>\n",
         "can_receive_suggestion": false
        },
        {
         "line_code": null,
         "type": "old",
         "old_line": 15,
         "new_line": null,
         "text": "-    #define EAGAIN_WRAPPER errno != EAGAIN && errno != EWOULDBLOCK",
         "meta_data": null,
         "rich_text": "-<span class=\"line\" data-lang=\"cpp\">    <span class=\"cp\">#define EAGAIN_WRAPPER errno != EAGAIN &amp;&amp; errno != EWOULDBLOCK</span></span>\n",
         "can_receive_suggestion": false
        },
        {
         "line_code": null,
         "type": "old",
         "old_line": 16,
         "new_line": null,
         "text": "-#else",
         "meta_data": null,
         "rich_text": "-<span class=\"line\" data-lang=\"cpp\"><span class=\"cp\">#else</span></span>\n",
         "can_receive_suggestion": false
        },
        {
         "line_code": null,
         "type": "old",
         "old_line": 17,
         "new_line": null,
         "text": "-    #define EAGAIN_WRAPPER errno != EAGAIN",
         "meta_data": null,
         "rich_text": "-<span class=\"line\" data-lang=\"cpp\">    <span class=\"cp\">#define EAGAIN_WRAPPER errno != EAGAIN</span></span>\n",
         "can_receive_suggestion": false
        },
        {
         "line_code": null,
         "type": "old",
         "old_line": 18,
         "new_line": null,
         "text": "-#endif",
         "meta_data": null,
         "rich_text": "-<span class=\"line\" data-lang=\"cpp\"><span class=\"cp\">#endif</span></span>\n",
         "can_receive_suggestion": false
        },
        {
         "line_code": null,
         "type": "new",
         "old_line": null,
         "new_line": 14,
         "text": "+#if EAGAIN != EWOULDBLOCK",
         "meta_data": null,
         "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cp\">#if EAGAIN != EWOULDBLOCK</span></span>\n",
         "can_receive_suggestion": true
        },
        {
         "line_code": null,
         "type": "new",
         "old_line": null,
         "new_line": 15,
         "text": "+    #define EAGAIN_WRAPPER ((errno != EAGAIN) && (errno != EWOULDBLOCK))",
         "meta_data": null,
         "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"cp\">#define EAGAIN_WRAPPER <span class=\"idiff left addition\">((</span>errno != EAGAIN<span class=\"idiff addition\">)</span> &amp;&amp; <span class=\"idiff addition\">(</span>errno != EWOULDBLOCK<span class=\"idiff right addition\">))</span></span></span>\n",
         "can_receive_suggestion": true
        },
        {
         "line_code": null,
         "type": "new",
         "old_line": null,
         "new_line": 16,
         "text": "+#else",
         "meta_data": null,
         "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cp\">#else</span></span>\n",
         "can_receive_suggestion": true
        },
        {
         "line_code": null,
         "type": "new",
         "old_line": null,
         "new_line": 17,
         "text": "+    #define EAGAIN_WRAPPER (errno != EAGAIN)",
         "meta_data": null,
         "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"cp\">#define EAGAIN_WRAPPER <span class=\"idiff left addition\">(</span>errno != EAGAIN<span class=\"idiff right addition\">)</span></span></span>\n",
         "can_receive_suggestion": true
        },
        {
         "line_code": null,
         "type": "new",
         "old_line": null,
         "new_line": 18,
         "text": "+#endif",
         "meta_data": null,
         "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cp\">#endif</span></span>\n",
         "can_receive_suggestion": true
        }
       ],
       "current_user": {
        "can_apply": false
       },
       "inapplicable_reason": "You don't have write access to the source branch."
      }
     ],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "```suggestion:-4+0\n#if EAGAIN != EWOULDBLOCK\n    #define EAGAIN_WRAPPER ((errno != EAGAIN) && (errno != EWOULDBLOCK))\n#else\n    #define EAGAIN_WRAPPER (errno != EAGAIN)\n#endif\n```\n\nNot strictly necessary, but avoids some issues with macro expansion causing unexpected side effects.\n\nAlternatively this could be made into an inline function which would allow to avoid the race condition in the first case, when `EAGAIN` and `EWOULDBLOCK` are different values and thus `errno` might be read multiple times (and thus this check no longer being atomic; interuptible by a signal handler).",
     "note_html": "<div class=\"gl-relative markdown-code-block js-markdown-code\"><pre data-sourcepos=\"1:1-7:3\" data-canonical-lang=\"suggestion\" data-lang-params=\"-4+0\" class=\"code highlight js-syntax-highlight language-suggestion\" lang=\"suggestion\" v-pre=\"true\"><code class=\"js-render-suggestion\"><span id=\"LC1\" class=\"line\" lang=\"suggestion\">#if EAGAIN != EWOULDBLOCK</span>\n<span id=\"LC2\" class=\"line\" lang=\"suggestion\">    #define EAGAIN_WRAPPER ((errno != EAGAIN) &amp;&amp; (errno != EWOULDBLOCK))</span>\n<span id=\"LC3\" class=\"line\" lang=\"suggestion\">#else</span>\n<span id=\"LC4\" class=\"line\" lang=\"suggestion\">    #define EAGAIN_WRAPPER (errno != EAGAIN)</span>\n<span id=\"LC5\" class=\"line\" lang=\"suggestion\">#endif</span></code></pre></div>\n<p data-sourcepos=\"9:1-9:100\" dir=\"auto\">Not strictly necessary, but avoids some issues with macro expansion causing unexpected side effects.</p>\n<p data-sourcepos=\"11:1-11:300\" dir=\"auto\">Alternatively this could be made into an inline function which would allow to avoid the race condition in the first case, when <code data-sourcepos=\"11:129-11:134\">EAGAIN</code> and <code data-sourcepos=\"11:142-11:152\">EWOULDBLOCK</code> are different values and thus <code data-sourcepos=\"11:186-11:190\">errno</code> might be read multiple times (and thus this check no longer being atomic; interuptible by a signal handler).</p>",
     "body_first_line_html": "<pre class=\"code highlight js-syntax-highlight language-suggestion\" lang=\"suggestion\"><code class=\"js-render-suggestion\"><span class=\"line\" lang=\"suggestion\">#if EAGAIN != EWOULDBLOCK...</span></code></pre>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "2815dafc4d798476327b80005266805f24a05032",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1814",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/2815dafc4d798476327b80005266805f24a05032/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=2815dafc4d798476327b80005266805f24a05032&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1814/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1814"
    }
   ],
   "positions": [
    {
     "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
     "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
     "head_sha": "fa2c0da30d81e9c221c06bdc71fd14947642191b",
     "old_path": "src/net/connection_client.hpp",
     "new_path": "src/net/connection_client.hpp",
     "position_type": "text",
     "old_line": null,
     "new_line": 18,
     "line_range": null
    }
   ],
   "line_codes": [
    "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_14_18"
   ]
  },
  {
   "id": "4642903d5560a80c5c6a19d173c78f69e87d3547",
   "reply_id": "4642903d5560a80c5c6a19d173c78f69e87d3547",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": true,
   "expanded": true,
   "for_commit": false,
   "individual_note": false,
   "resolvable": true,
   "truncated_diff_lines": [
    {
     "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_17_23",
     "type": null,
     "old_line": 17,
     "new_line": 23,
     "text": " public:",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"><span class=\"nl\">public:</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_18_24",
     "type": "new",
     "old_line": null,
     "new_line": 24,
     "text": "+",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_18_25",
     "type": "new",
     "old_line": null,
     "new_line": 25,
     "text": "+    /**",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">    <span class=\"cm\">/**</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_18_26",
     "type": "new",
     "old_line": null,
     "new_line": 26,
     "text": "+      * This function type accepts a reference to the incomming data string which it may not alter",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">      * This function type accepts a reference to the incomming data string which it may not alter</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_18_27",
     "type": "new",
     "old_line": null,
     "new_line": 27,
     "text": "+      * and may not return any data.",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">      * and may not return any data.</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_18_28",
     "type": "new",
     "old_line": null,
     "new_line": 28,
     "text": "+      */",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">      */</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_18_29",
     "type": null,
     "old_line": 18,
     "new_line": 29,
     "text": " \ttypedef std::function<void(const std::string&)> incomming_data_cb;",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\">\t<span class=\"k\">typedef</span> <span class=\"n\">std</span><span class=\"o\">::</span><span class=\"n\">function</span><span class=\"o\">&lt;</span><span class=\"kt\">void</span><span class=\"p\">(</span><span class=\"k\">const</span> <span class=\"n\">std</span><span class=\"o\">::</span><span class=\"n\">string</span><span class=\"o\">&amp;</span><span class=\"p\">)</span><span class=\"o\">&gt;</span> <span class=\"n\">incomming_data_cb</span><span class=\"p\">;</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_19_30",
     "type": null,
     "old_line": 19,
     "new_line": 30,
     "text": " protected:",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"><span class=\"nl\">protected:</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_20_31",
     "type": null,
     "old_line": 20,
     "new_line": 31,
     "text": " \tincomming_data_cb in_data_cb;",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\">\t<span class=\"n\">incomming_data_cb</span> <span class=\"n\">in_data_cb</span><span class=\"p\">;</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_21_32",
     "type": null,
     "old_line": 21,
     "new_line": 32,
     "text": " public:",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"><span class=\"nl\">public:</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_22_33",
     "type": "old",
     "old_line": 22,
     "new_line": null,
     "text": "-\tconnection_client();",
     "meta_data": null,
     "rich_text": "-<span class=\"line\" data-lang=\"cpp\">\t<span class=\"n\">connection_client</span><span class=\"p\">();</span></span>\n",
     "can_receive_suggestion": false
    },
    {
     "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_23_33",
     "type": "new",
     "old_line": null,
     "new_line": 33,
     "text": "+\tconnection_client() : in_data_cb{} {};",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">\t<span class=\"n\">connection_client</span><span class=\"p\">()</span><span class=\"idiff left addition\"> </span><span class=\"o\"><span class=\"idiff addition\">:</span></span><span class=\"idiff addition\"> </span><span class=\"n\"><span class=\"idiff addition\">in_data_cb</span></span><span class=\"p\"><span class=\"idiff addition\">{}</span></span><span class=\"idiff addition\"> </span><span class=\"p\"><span class=\"idiff right addition\">{}</span>;</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_23_34",
     "type": null,
     "old_line": 23,
     "new_line": 34,
     "text": " ",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_24_35",
     "type": null,
     "old_line": 24,
     "new_line": 35,
     "text": " \t/**",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\">\t<span class=\"cm\">/**</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_25_36",
     "type": null,
     "old_line": 25,
     "new_line": 36,
     "text": " \t * Use this method to send data to the other endpoint.",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">\t * Use this method to send data to the other endpoint.</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_26_37",
     "type": "new",
     "old_line": null,
     "new_line": 37,
     "text": "+     * @param data The data to send",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"cm\">     * @param data The data to send</span></span>\n",
     "can_receive_suggestion": true
    }
   ],
   "active": false,
   "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_26_37",
   "diff_file": {
    "content_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "submodule": false,
    "submodule_link": null,
    "submodule_tree_url": null,
    "submodule_compare": null,
    "old_path_html": "src/net/connection_client.hpp",
    "new_path_html": "src/net/connection_client.hpp",
    "blob": {
     "id": "4daacd96e9c8b33971930466660bcaf2ee215979",
     "path": "src/net/connection_client.hpp",
     "name": "connection_client.hpp",
     "mode": "100644",
     "readable_text": true,
     "icon": "doc-text"
    },
    "can_modify_blob": false,
    "file_identifier_hash": "2a8c99a065a3eeb6752e3bd56a65ff7caf3ebe4c",
    "file_hash": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd",
    "file_path": "src/net/connection_client.hpp",
    "old_path": "src/net/connection_client.hpp",
    "new_path": "src/net/connection_client.hpp",
    "new_file": false,
    "renamed_file": false,
    "deleted_file": false,
    "diff_refs": {
     "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
     "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
     "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422"
    },
    "stored_externally": null,
    "external_storage": null,
    "mode_changed": false,
    "a_mode": "100644",
    "b_mode": "100644",
    "viewer": {
     "name": "text",
     "error": null,
     "error_message": null,
     "collapsed": false,
     "expandable": true,
     "generated": null,
     "whitespace_only": null
    },
    "alternate_viewer": null,
    "old_size": 819,
    "new_size": 1214
   },
   "position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "7962e9e4a88484b5bc782c339a641ce6c1303461",
    "old_path": "src/net/connection_client.hpp",
    "new_path": "src/net/connection_client.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 37,
    "line_range": {
     "start": {
      "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_26_37",
      "type": "new",
      "old_line": null,
      "new_line": 37
     },
     "end": {
      "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_26_37",
      "type": "new",
      "old_line": null,
      "new_line": 37
     }
    }
   },
   "original_position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "old_path": "src/net/connection_client.hpp",
    "new_path": "src/net/connection_client.hpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 37,
    "line_range": {
     "start": {
      "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_26_37",
      "type": "new",
      "old_line": null,
      "new_line": 37
     },
     "end": {
      "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_26_37",
      "type": "new",
      "old_line": null,
      "new_line": 37
     }
    }
   },
   "discussion_path": "/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=528#6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_26_37",
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/4642903d5560a80c5c6a19d173c78f69e87d3547/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=4642903d5560a80c5c6a19d173c78f69e87d3547&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "notes": [
    {
     "id": "1815",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:16:03.503Z",
     "updated_at": "2022-12-08T15:16:03.503Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "7962e9e4a88484b5bc782c339a641ce6c1303461",
      "old_path": "src/net/connection_client.hpp",
      "new_path": "src/net/connection_client.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 37,
      "line_range": {
       "start": {
        "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_26_37",
        "type": "new",
        "old_line": null,
        "new_line": 37
       },
       "end": {
        "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_26_37",
        "type": "new",
        "old_line": null,
        "new_line": 37
       }
      }
     },
     "resolvable": true,
     "resolved": false,
     "resolved_by": null,
     "resolved_at": null,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "Indentation",
     "note_html": "<p data-sourcepos=\"1:1-1:11\" dir=\"auto\">Indentation</p>",
     "body_first_line_html": "<p>Indentation</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "4642903d5560a80c5c6a19d173c78f69e87d3547",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1815",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/4642903d5560a80c5c6a19d173c78f69e87d3547/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=4642903d5560a80c5c6a19d173c78f69e87d3547&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1815/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1815"
    },
    {
     "id": "1877",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2023-01-03T21:29:24.554Z",
     "updated_at": "2023-01-03T21:29:24.554Z",
     "system": true,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
      "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
      "head_sha": "7962e9e4a88484b5bc782c339a641ce6c1303461",
      "old_path": "src/net/connection_client.hpp",
      "new_path": "src/net/connection_client.hpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 37,
      "line_range": {
       "start": {
        "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_26_37",
        "type": "new",
        "old_line": null,
        "new_line": 37
       },
       "end": {
        "line_code": "6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_26_37",
        "type": "new",
        "old_line": null,
        "new_line": 37
       }
      }
     },
     "resolvable": false,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "changed this line in [version 6 of the diff](/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=534&start_sha=7962e9e4a88484b5bc782c339a641ce6c1303461#6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_37_37)",
     "note_html": "<p data-sourcepos=\"1:1-1:205\" dir=\"auto\">changed this line in <a data-sourcepos=\"1:22-1:205\" href=\"/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=534&amp;start_sha=7962e9e4a88484b5bc782c339a641ce6c1303461#6f1a30a87bca63cdbee19f3c3d32bbf98fe27bcd_37_37\">version 6 of the diff</a></p>",
     "body_first_line_html": "<p>changed this line in version 6 of the diff</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "pencil",
     "outdated_line_change_path": "/ReadMailReallyFast/code/notes/1877/outdated_line_change",
     "is_noteable_author": false,
     "discussion_id": "4642903d5560a80c5c6a19d173c78f69e87d3547",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1877",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "path": "/ReadMailReallyFast/code/notes/1877"
    }
   ],
   "positions": [],
   "line_codes": []
  },
  {
   "id": "d7d26ed88d909858cded6d1fce38fdca5fea5853",
   "reply_id": "d7d26ed88d909858cded6d1fce38fdca5fea5853",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": true,
   "expanded": true,
   "for_commit": false,
   "individual_note": false,
   "resolvable": true,
   "truncated_diff_lines": [
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_4_4",
     "type": null,
     "old_line": 4,
     "new_line": 4,
     "text": "  *  Created on: 05.01.2021",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"><span class=\"cm\"> *  Created on: 05.01.2021</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_5_5",
     "type": null,
     "old_line": 5,
     "new_line": 5,
     "text": "  *      Author: doralitze",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"><span class=\"cm\"> *      Author: doralitze</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_6_6",
     "type": null,
     "old_line": 6,
     "new_line": 6,
     "text": "  */",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"><span class=\"cm\"> */</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_7_7",
     "type": "old",
     "old_line": 7,
     "new_line": null,
     "text": "-",
     "meta_data": null,
     "rich_text": "-<span class=\"line\" data-lang=\"cpp\"></span>\n",
     "can_receive_suggestion": false
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_8_7",
     "type": "new",
     "old_line": null,
     "new_line": 7,
     "text": "+ ",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"> </span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_8_8",
     "type": null,
     "old_line": 8,
     "new_line": 8,
     "text": " #include \"net/connection_line_buffer.hpp\"",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"><span class=\"cp\">#include</span> <span class=\"cpf\">\"net/connection_line_buffer.hpp\"</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_9_9",
     "type": null,
     "old_line": 9,
     "new_line": 9,
     "text": " ",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_10_10",
     "type": null,
     "old_line": 10,
     "new_line": 10,
     "text": " namespace rmrf::net {",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"><span class=\"k\">namespace</span> <span class=\"n\">rmrf</span><span class=\"o\">::</span><span class=\"n\">net</span> <span class=\"p\">{</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_11_11",
     "type": null,
     "old_line": 11,
     "new_line": 11,
     "text": " ",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\"></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_12_12",
     "type": "old",
     "old_line": 12,
     "new_line": null,
     "text": "-static std::string::size_type default_eol_search(const std::string& data, std::string::size_type start_position) {",
     "meta_data": null,
     "rich_text": "-<span class=\"line\" data-lang=\"cpp\"><span class=\"k\">static</span> <span class=\"n\">std</span><span class=\"o\">::</span><span class=\"n\">string</span><span class=\"o\">::</span><span class=\"n\">size_type</span> <span class=\"n\">default_eol_search</span><span class=\"p\">(</span><span class=\"k\">const</span> <span class=\"n\">std</span><span class=\"o\">::</span><span class=\"n\">string</span><span class=\"o\">&amp;</span> <span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">std</span><span class=\"o\">::</span><span class=\"n\">string</span><span class=\"o\">::</span><span class=\"n\">size_type</span> <span class=\"n\">start_position</span><span class=\"p\">)</span> <span class=\"p\">{</span></span>\n",
     "can_receive_suggestion": false
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_13_12",
     "type": "new",
     "old_line": null,
     "new_line": 12,
     "text": "+std::string::size_type default_eol_search(const std::string& data, std::string::size_type start_position) {",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\"><span class=\"n\">std</span><span class=\"o\">::</span><span class=\"n\">string</span><span class=\"o\">::</span><span class=\"n\">size_type</span> <span class=\"n\">default_eol_search</span><span class=\"p\">(</span><span class=\"k\">const</span> <span class=\"n\">std</span><span class=\"o\">::</span><span class=\"n\">string</span><span class=\"o\">&amp;</span> <span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">std</span><span class=\"o\">::</span><span class=\"n\">string</span><span class=\"o\">::</span><span class=\"n\">size_type</span> <span class=\"n\">start_position</span><span class=\"p\">)</span> <span class=\"p\">{</span></span>\n",
     "can_receive_suggestion": true
    }
   ],
   "active": false,
   "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_13_12",
   "diff_file": {
    "content_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "submodule": false,
    "submodule_link": null,
    "submodule_tree_url": null,
    "submodule_compare": null,
    "old_path_html": "src/net/connection_line_buffer.cpp",
    "new_path_html": "src/net/connection_line_buffer.cpp",
    "blob": {
     "id": "9249906c108e9b491527b1811310b0cb7b384c3a",
     "path": "src/net/connection_line_buffer.cpp",
     "name": "connection_line_buffer.cpp",
     "mode": "100644",
     "readable_text": true,
     "icon": "doc-text"
    },
    "can_modify_blob": false,
    "file_identifier_hash": "100bf5dce2c1f37aea52c36518665a1d66654fc6",
    "file_hash": "1d6ba663e692e4c13132d2491d4e75b1f50b0698",
    "file_path": "src/net/connection_line_buffer.cpp",
    "old_path": "src/net/connection_line_buffer.cpp",
    "new_path": "src/net/connection_line_buffer.cpp",
    "new_file": false,
    "renamed_file": false,
    "deleted_file": false,
    "diff_refs": {
     "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
     "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
     "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422"
    },
    "stored_externally": null,
    "external_storage": null,
    "mode_changed": false,
    "a_mode": "100644",
    "b_mode": "100644",
    "viewer": {
     "name": "text",
     "error": null,
     "error_message": null,
     "collapsed": false,
     "expandable": true,
     "generated": null,
     "whitespace_only": null
    },
    "alternate_viewer": null,
    "old_size": 2227,
    "new_size": 2846
   },
   "position": {
    "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
    "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
    "head_sha": "2e411a9d57cb74c098f67d82f8f02eb7d6164afc",
    "old_path": "src/net/connection_line_buffer.cpp",
    "new_path": "src/net/connection_line_buffer.cpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 12,
    "line_range": {
     "start": {
      "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_13_12",
      "type": "new",
      "old_line": null,
      "new_line": 12
     },
     "end": {
      "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_13_12",
      "type": "new",
      "old_line": null,
      "new_line": 12
     }
    }
   },
   "original_position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "old_path": "src/net/connection_line_buffer.cpp",
    "new_path": "src/net/connection_line_buffer.cpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 12,
    "line_range": {
     "start": {
      "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_13_12",
      "type": "new",
      "old_line": null,
      "new_line": 12
     },
     "end": {
      "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_13_12",
      "type": "new",
      "old_line": null,
      "new_line": 12
     }
    }
   },
   "discussion_path": "/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=588#1d6ba663e692e4c13132d2491d4e75b1f50b0698_13_12",
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/d7d26ed88d909858cded6d1fce38fdca5fea5853/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=d7d26ed88d909858cded6d1fce38fdca5fea5853&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "notes": [
    {
     "id": "1816",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:16:03.576Z",
     "updated_at": "2022-12-08T15:16:03.576Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "head_sha": "2e411a9d57cb74c098f67d82f8f02eb7d6164afc",
      "old_path": "src/net/connection_line_buffer.cpp",
      "new_path": "src/net/connection_line_buffer.cpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 12,
      "line_range": {
       "start": {
        "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_13_12",
        "type": "new",
        "old_line": null,
        "new_line": 12
       },
       "end": {
        "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_13_12",
        "type": "new",
        "old_line": null,
        "new_line": 12
       }
      }
     },
     "resolvable": true,
     "resolved": false,
     "resolved_by": null,
     "resolved_at": null,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "Indentation in this function looks all over the place.",
     "note_html": "<p data-sourcepos=\"1:1-1:54\" dir=\"auto\">Indentation in this function looks all over the place.</p>",
     "body_first_line_html": "<p>Indentation in this function looks all over the place.</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "d7d26ed88d909858cded6d1fce38fdca5fea5853",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1816",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/d7d26ed88d909858cded6d1fce38fdca5fea5853/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=d7d26ed88d909858cded6d1fce38fdca5fea5853&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1816/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1816"
    },
    {
     "id": "1957",
     "type": "DiffNote",
     "author": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2023-02-26T20:37:13.654Z",
     "updated_at": "2023-02-26T20:37:13.654Z",
     "system": true,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "head_sha": "2e411a9d57cb74c098f67d82f8f02eb7d6164afc",
      "old_path": "src/net/connection_line_buffer.cpp",
      "new_path": "src/net/connection_line_buffer.cpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 12,
      "line_range": {
       "start": {
        "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_13_12",
        "type": "new",
        "old_line": null,
        "new_line": 12
       },
       "end": {
        "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_13_12",
        "type": "new",
        "old_line": null,
        "new_line": 12
       }
      }
     },
     "resolvable": false,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "changed this line in [version 34 of the diff](/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=596&start_sha=2e411a9d57cb74c098f67d82f8f02eb7d6164afc#1d6ba663e692e4c13132d2491d4e75b1f50b0698_12_12)",
     "note_html": "<p data-sourcepos=\"1:1-1:206\" dir=\"auto\">changed this line in <a data-sourcepos=\"1:22-1:206\" href=\"/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=596&amp;start_sha=2e411a9d57cb74c098f67d82f8f02eb7d6164afc#1d6ba663e692e4c13132d2491d4e75b1f50b0698_12_12\">version 34 of the diff</a></p>",
     "body_first_line_html": "<p>changed this line in version 34 of the diff</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "pencil",
     "outdated_line_change_path": "/ReadMailReallyFast/code/notes/1957/outdated_line_change",
     "is_noteable_author": true,
     "discussion_id": "d7d26ed88d909858cded6d1fce38fdca5fea5853",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1957",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "path": "/ReadMailReallyFast/code/notes/1957"
    }
   ],
   "positions": [
    {
     "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
     "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
     "head_sha": "a61acfd261762f4522458cf245eb914162105feb",
     "old_path": "src/net/connection_line_buffer.cpp",
     "new_path": "src/net/connection_line_buffer.cpp",
     "position_type": "text",
     "old_line": null,
     "new_line": 12,
     "line_range": null
    }
   ],
   "line_codes": [
    "1d6ba663e692e4c13132d2491d4e75b1f50b0698_13_12"
   ]
  },
  {
   "id": "a9cca5b30b88f17a3f401330afe4a93933fc6ebe",
   "reply_id": "a9cca5b30b88f17a3f401330afe4a93933fc6ebe",
   "project_id": 76,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": true,
   "expanded": true,
   "for_commit": false,
   "individual_note": false,
   "resolvable": true,
   "truncated_diff_lines": [
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_36_37",
     "type": null,
     "old_line": 36,
     "new_line": 37,
     "text": " \t\tclient(c),",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\">\t\t<span class=\"n\">client</span><span class=\"p\">(</span><span class=\"n\">c</span><span class=\"p\">),</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_37_38",
     "type": null,
     "old_line": 37,
     "new_line": 38,
     "text": " \t\tfound_next_line_cb(found_next_line_cb_),",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\">\t\t<span class=\"n\">found_next_line_cb</span><span class=\"p\">(</span><span class=\"n\">found_next_line_cb_</span><span class=\"p\">),</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_38_39",
     "type": null,
     "old_line": 38,
     "new_line": 39,
     "text": " \t\tmax(max_line_size),",
     "meta_data": null,
     "rich_text": " <span class=\"line\" data-lang=\"cpp\">\t\t<span class=\"n\">max</span><span class=\"p\">(</span><span class=\"n\">max_line_size</span><span class=\"p\">),</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_39_40",
     "type": "old",
     "old_line": 39,
     "new_line": null,
     "text": "-\t\tdata(\"\") {",
     "meta_data": null,
     "rich_text": "-<span class=\"line\" data-lang=\"cpp\">\t\t<span class=\"n\">data</span><span class=\"p\">(</span><span class=\"s\">\"\"</span><span class=\"p\">)</span> <span class=\"p\">{</span></span>\n",
     "can_receive_suggestion": false
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_40_40",
     "type": "old",
     "old_line": 40,
     "new_line": null,
     "text": "-\tthis->client->set_incomming_data_callback(std::bind(&connection_line_buffer::conn_data_in_cb, this, std::placeholders::_1));",
     "meta_data": null,
     "rich_text": "-<span class=\"line\" data-lang=\"cpp\">\t<span class=\"k\">this</span><span class=\"o\">-&gt;</span><span class=\"n\">client</span><span class=\"o\">-&gt;</span><span class=\"n\">set_incomming_data_callback</span><span class=\"p\">(</span><span class=\"n\">std</span><span class=\"o\">::</span><span class=\"n\">bind</span><span class=\"p\">(</span><span class=\"o\">&amp;</span><span class=\"n\">connection_line_buffer</span><span class=\"o\">::</span><span class=\"n\">conn_data_in_cb</span><span class=\"p\">,</span> <span class=\"k\">this</span><span class=\"p\">,</span> <span class=\"n\">std</span><span class=\"o\">::</span><span class=\"n\">placeholders</span><span class=\"o\">::</span><span class=\"n\">_1</span><span class=\"p\">));</span></span>\n",
     "can_receive_suggestion": false
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_41_40",
     "type": "new",
     "old_line": null,
     "new_line": 40,
     "text": "+\t\tdata_buffer(std::ostringstream::ate),",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">\t\t<span class=\"n\">data_buffer</span><span class=\"p\">(</span><span class=\"n\">std</span><span class=\"o\">::</span><span class=\"n\">ostringstream</span><span class=\"o\">::</span><span class=\"n\">ate</span><span class=\"p\">),</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_41_41",
     "type": "new",
     "old_line": null,
     "new_line": 41,
     "text": "+        buffer_length{0} {",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">        <span class=\"n\">buffer_length</span><span class=\"p\">{</span><span class=\"mi\">0</span><span class=\"p\">}</span> <span class=\"p\">{</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_41_42",
     "type": "new",
     "old_line": null,
     "new_line": 42,
     "text": "+\tthis->client->set_incomming_data_callback(",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">\t<span class=\"k\">this</span><span class=\"o\">-&gt;</span><span class=\"n\">client</span><span class=\"o\">-&gt;</span><span class=\"n\">set_incomming_data_callback</span><span class=\"p\">(</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_41_43",
     "type": "new",
     "old_line": null,
     "new_line": 43,
     "text": "+\t\t[this](const std::string& data_in) {",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">\t\t<span class=\"p\">[</span><span class=\"k\">this</span><span class=\"p\">](</span><span class=\"k\">const</span> <span class=\"n\">std</span><span class=\"o\">::</span><span class=\"n\">string</span><span class=\"o\">&amp;</span> <span class=\"n\">data_in</span><span class=\"p\">)</span> <span class=\"p\">{</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_41_44",
     "type": "new",
     "old_line": null,
     "new_line": 44,
     "text": "+\t\t\tconn_data_in_cb(data_in);",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">\t\t\t<span class=\"n\">conn_data_in_cb</span><span class=\"p\">(</span><span class=\"n\">data_in</span><span class=\"p\">);</span></span>\n",
     "can_receive_suggestion": true
    },
    {
     "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_41_45",
     "type": "new",
     "old_line": null,
     "new_line": 45,
     "text": "+\t\t});",
     "meta_data": null,
     "rich_text": "+<span class=\"line\" data-lang=\"cpp\">\t\t<span class=\"p\">});</span></span>\n",
     "can_receive_suggestion": true
    }
   ],
   "active": false,
   "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_41_45",
   "diff_file": {
    "content_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "submodule": false,
    "submodule_link": null,
    "submodule_tree_url": null,
    "submodule_compare": null,
    "old_path_html": "src/net/connection_line_buffer.cpp",
    "new_path_html": "src/net/connection_line_buffer.cpp",
    "blob": {
     "id": "9249906c108e9b491527b1811310b0cb7b384c3a",
     "path": "src/net/connection_line_buffer.cpp",
     "name": "connection_line_buffer.cpp",
     "mode": "100644",
     "readable_text": true,
     "icon": "doc-text"
    },
    "can_modify_blob": false,
    "file_identifier_hash": "100bf5dce2c1f37aea52c36518665a1d66654fc6",
    "file_hash": "1d6ba663e692e4c13132d2491d4e75b1f50b0698",
    "file_path": "src/net/connection_line_buffer.cpp",
    "old_path": "src/net/connection_line_buffer.cpp",
    "new_path": "src/net/connection_line_buffer.cpp",
    "new_file": false,
    "renamed_file": false,
    "deleted_file": false,
    "diff_refs": {
     "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
     "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
     "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422"
    },
    "stored_externally": null,
    "external_storage": null,
    "mode_changed": false,
    "a_mode": "100644",
    "b_mode": "100644",
    "viewer": {
     "name": "text",
     "error": null,
     "error_message": null,
     "collapsed": false,
     "expandable": true,
     "generated": null,
     "whitespace_only": null
    },
    "alternate_viewer": null,
    "old_size": 2227,
    "new_size": 2846
   },
   "position": {
    "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
    "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
    "head_sha": "526fff120c1935b928770a90d696c4f861dac41d",
    "old_path": "src/net/connection_line_buffer.cpp",
    "new_path": "src/net/connection_line_buffer.cpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 45,
    "line_range": {
     "start": {
      "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_41_43",
      "type": "new",
      "old_line": null,
      "new_line": 43
     },
     "end": {
      "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_41_45",
      "type": "new",
      "old_line": null,
      "new_line": 45
     }
    }
   },
   "original_position": {
    "base_sha": "9806e2868d34422b55c975ea72b7a74893516084",
    "start_sha": "14c60ffc22407a635b1ea0bde0c6bcfc1f8e5140",
    "head_sha": "c204ad1adf9221517cb5a2954c6430b815c9d422",
    "old_path": "src/net/connection_line_buffer.cpp",
    "new_path": "src/net/connection_line_buffer.cpp",
    "position_type": "text",
    "old_line": null,
    "new_line": 45,
    "line_range": {
     "start": {
      "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_41_43",
      "type": "new",
      "old_line": null,
      "new_line": 43
     },
     "end": {
      "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_41_45",
      "type": "new",
      "old_line": null,
      "new_line": 45
     }
    }
   },
   "discussion_path": "/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=574#1d6ba663e692e4c13132d2491d4e75b1f50b0698_41_45",
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/a9cca5b30b88f17a3f401330afe4a93933fc6ebe/resolve",
   "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=a9cca5b30b88f17a3f401330afe4a93933fc6ebe&merge_request_id=183&merge_request_to_resolve_discussions_of=1",
   "notes": [
    {
     "id": "1817",
     "type": "DiffNote",
     "author": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-12-08T15:16:03.631Z",
     "updated_at": "2022-12-08T19:33:54.246Z",
     "system": false,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "head_sha": "526fff120c1935b928770a90d696c4f861dac41d",
      "old_path": "src/net/connection_line_buffer.cpp",
      "new_path": "src/net/connection_line_buffer.cpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 45,
      "line_range": {
       "start": {
        "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_41_43",
        "type": "new",
        "old_line": null,
        "new_line": 43
       },
       "end": {
        "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_41_45",
        "type": "new",
        "old_line": null,
        "new_line": 45
       }
      }
     },
     "resolvable": true,
     "resolved": false,
     "resolved_by": null,
     "resolved_at": null,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "Performance note: Check if a reference or const reference to `this` suffices for this callback to avoid calling the copy ctor here.",
     "note_html": "<p data-sourcepos=\"1:1-1:131\" dir=\"auto\">Performance note: Check if a reference or const reference to <code data-sourcepos=\"1:63-1:66\">this</code> suffices for this callback to avoid calling the copy ctor here.</p>",
     "body_first_line_html": "<p>Performance note: Check if a reference or const reference to <code>this</code> suffices for this callback to avoid calling the copy cto...</p>",
     "last_edited_at": "2022-12-08T19:33:54.207Z",
     "last_edited_by": {
      "id": 30,
      "username": "benbe",
      "public_email": "",
      "name": "Benny Baumann",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/eea177fb2584912ceae6eb3d0acbf237712a8605842e4bb559e672060a23ad3d?s=80&d=identicon",
      "show_status": false,
      "path": "/benbe",
      "bot": false,
      "user_type": "human"
     },
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved_by_push": false,
     "is_noteable_author": false,
     "discussion_id": "a9cca5b30b88f17a3f401330afe4a93933fc6ebe",
     "emoji_awardable": true,
     "award_emoji": [],
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1817",
     "resolve_path": "/ReadMailReallyFast/code/-/merge_requests/1/discussions/a9cca5b30b88f17a3f401330afe4a93933fc6ebe/resolve",
     "resolve_with_issue_path": "/ReadMailReallyFast/code/-/issues/new?discussion_to_resolve=a9cca5b30b88f17a3f401330afe4a93933fc6ebe&merge_request_to_resolve_discussions_of=1",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "toggle_award_path": "/ReadMailReallyFast/code/notes/1817/toggle_award_emoji",
     "path": "/ReadMailReallyFast/code/notes/1817"
    },
    {
     "id": "1923",
     "type": "DiffNote",
     "author": {
      "id": 32,
      "username": "doralitze",
      "public_email": "",
      "name": "Leon Dietrich",
      "state": "active",
      "locked": false,
      "avatar_url": "https://git.chaotikum.org/uploads/-/system/user/avatar/32/avatar.png",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/doralitze",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2023-01-29T19:04:47.840Z",
     "updated_at": "2023-01-29T19:04:47.840Z",
     "system": true,
     "noteable_id": 183,
     "noteable_type": "MergeRequest",
     "project_id": 76,
     "commit_id": null,
     "position": {
      "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
      "head_sha": "526fff120c1935b928770a90d696c4f861dac41d",
      "old_path": "src/net/connection_line_buffer.cpp",
      "new_path": "src/net/connection_line_buffer.cpp",
      "position_type": "text",
      "old_line": null,
      "new_line": 45,
      "line_range": {
       "start": {
        "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_41_43",
        "type": "new",
        "old_line": null,
        "new_line": 43
       },
       "end": {
        "line_code": "1d6ba663e692e4c13132d2491d4e75b1f50b0698_41_45",
        "type": "new",
        "old_line": null,
        "new_line": 45
       }
      }
     },
     "resolvable": false,
     "suggestions": [],
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 1,
     "commands_changes": {},
     "external_author": null,
     "note": "changed this line in [version 31 of the diff](/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=584&start_sha=526fff120c1935b928770a90d696c4f861dac41d#1d6ba663e692e4c13132d2491d4e75b1f50b0698_45_34)",
     "note_html": "<p data-sourcepos=\"1:1-1:206\" dir=\"auto\">changed this line in <a data-sourcepos=\"1:22-1:206\" href=\"/ReadMailReallyFast/code/-/merge_requests/1/diffs?diff_id=584&amp;start_sha=526fff120c1935b928770a90d696c4f861dac41d#1d6ba663e692e4c13132d2491d4e75b1f50b0698_45_34\">version 31 of the diff</a></p>",
     "body_first_line_html": "<p>changed this line in version 31 of the diff</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "pencil",
     "outdated_line_change_path": "/ReadMailReallyFast/code/notes/1923/outdated_line_change",
     "is_noteable_author": true,
     "discussion_id": "a9cca5b30b88f17a3f401330afe4a93933fc6ebe",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/ReadMailReallyFast/code/-/merge_requests/1#note_1923",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "code",
     "path": "/ReadMailReallyFast/code/notes/1923"
    }
   ],
   "positions": [
    {
     "base_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
     "start_sha": "ee3dd33989fd36e8517ae49b6e364c73f259b3d0",
     "head_sha": "410ee2f6c8e0cd863ff4d1e271edc57ddaa28633",
     "old_path": "src/net/connection_line_buffer.cpp",
     "new_path": "src/net/connection_line_buffer.cpp",
     "position_type": "text",
     "old_line": null,
     "new_line": 45,
     "line_range": null
    }
   ],
   "line_codes": [
    "1d6ba663e692e4c13132d2491d4e75b1f50b0698_41_45"
   ]
  }
 ]
}