Serenity Operating System
1/*
2 * Copyright (c) 2020, Itamar S. <itamar8910@gmail.com>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#pragma once
8
9#include <AK/DeprecatedString.h>
10#include <AK/Vector.h>
11
12namespace Diff {
13
14struct HunkLocation {
15 size_t original_start_line { 0 };
16 size_t original_length { 0 };
17 size_t target_start_line { 0 };
18 size_t target_length { 0 };
19
20 enum class LocationType {
21 Original,
22 Target,
23 Both
24 };
25 void apply_offset(size_t offset, LocationType);
26};
27
28struct Hunk {
29 size_t original_start_line { 0 };
30 size_t target_start_line { 0 };
31 Vector<DeprecatedString> removed_lines;
32 Vector<DeprecatedString> added_lines;
33};
34
35Vector<Hunk> parse_hunks(DeprecatedString const& diff);
36HunkLocation parse_hunk_location(DeprecatedString const& location_line);
37};