1 module deimos.git2.patch;
2 
3 import deimos.git2.common;
4 import deimos.git2.types;
5 import deimos.git2.oid;
6 import deimos.git2.diff;
7 
8 struct git_patch {
9 	@disable this();
10 	@disable this(this);
11 }
12 
13 int git_patch_from_diff(
14 	git_patch **out_, git_diff *diff, size_t idx);
15 int git_patch_from_blobs(
16 	git_patch **out_,
17 	const(git_blob)* old_blob,
18 	const(char)* old_as_path,
19 	const(git_blob)* new_blob,
20 	const(char)* new_as_path,
21 	const(git_diff_options)* opts);
22 int git_patch_from_blob_and_buffer(
23 	git_patch **out_,
24 	const(git_blob)* old_blob,
25 	const(char)* old_as_path,
26 	const(char)* buffer,
27 	size_t buffer_len,
28 	const(char)* buffer_as_path,
29 	const(git_diff_options)* opts);
30 void git_patch_free(git_patch *patch);
31 const(git_diff_delta)* git_patch_get_delta(git_patch *patch);
32 size_t git_patch_num_hunks(git_patch *patch);
33 int git_patch_line_stats(
34 	size_t *total_context,
35 	size_t *total_additions,
36 	size_t *total_deletions,
37 	const(git_patch)* patch);
38 int git_patch_get_hunk(
39 	const(git_diff_hunk)** out_,
40 	size_t *lines_in_hunk,
41 	git_patch *patch,
42 	size_t hunk_idx);
43 int git_patch_num_lines_in_hunk(
44 	git_patch *patch,
45 	size_t hunk_idx);
46 int git_patch_get_line_in_hunk(
47 	const(git_diff_line)** out_,
48 	git_patch *patch,
49 	size_t hunk_idx,
50 	size_t line_of_hunk);
51 size_t git_patch_size(
52 	git_patch *patch,
53 	int include_context,
54 	int include_hunk_headers,
55 	int include_file_headers);
56 int git_patch_print(
57 	git_patch *patch,
58 	git_diff_line_cb print_cb,
59 	void *payload);
60 int git_patch_to_str(
61 	char **string,
62 	git_patch *patch);