1 module deimos.git2.refs;
2 
3 import deimos.git2.common;
4 import deimos.git2.oid;
5 import deimos.git2.strarray;
6 import deimos.git2.sys.refdb_backend;
7 import deimos.git2.types;
8 import deimos.git2.util;
9 
10 extern (C):
11 
12 int git_reference_lookup(git_reference **out_, git_repository *repo, const(char)* name);
13 int git_reference_name_to_id(
14 	git_oid *out_, git_repository *repo, const(char)* name);
15 int git_reference_dwim(git_reference **out_, git_repository *repo, const(char)* shorthand);
16 int git_reference_symbolic_create(git_reference **out_, git_repository *repo, const(char)* name, const(char)* target, int force);
17 int git_reference_create(git_reference **out_, git_repository *repo, const(char)* name, const(git_oid)* id, int force);
18 const(git_oid)*  git_reference_target(const(git_reference)* ref_);
19 const(git_oid)*  git_reference_target_peel(const(git_reference)* ref_);
20 const(char)*  git_reference_symbolic_target(const(git_reference)* ref_);
21 git_ref_t git_reference_type(const(git_reference)* ref_);
22 const(char)*  git_reference_name(const(git_reference)* ref_);
23 int git_reference_resolve(git_reference **out_, const(git_reference)* ref_);
24 git_repository * git_reference_owner(const(git_reference)* ref_);
25 int git_reference_symbolic_set_target(
26 	git_reference **out_,
27 	git_reference *ref_,
28 	const(char)* target);
29 int git_reference_set_target(
30 	git_reference **out_,
31 	git_reference *ref_,
32 	const(git_oid)* id);
33 int git_reference_rename(
34 	git_reference **new_ref,
35 	git_reference *ref_,
36 	const(char)* new_name,
37 	int force);
38 int git_reference_delete(git_reference *ref_);
39 int git_reference_list(git_strarray *array, git_repository *repo);
40 
41 alias git_reference_foreach_cb = int function(git_reference *reference, void *payload);
42 alias git_reference_foreach_name_cb = int function(const(char)* name, void *payload);
43 
44 int git_reference_foreach(
45 	git_repository *repo,
46 	git_reference_foreach_cb callback,
47 	void *payload);
48 int git_reference_foreach_name(
49 	git_repository *repo,
50 	git_reference_foreach_name_cb callback,
51 	void *payload);
52 void git_reference_free(git_reference *ref_);
53 int git_reference_cmp(git_reference *ref1, git_reference *ref2);
54 int git_reference_iterator_new(
55 	git_reference_iterator **out_,
56 	git_repository *repo);
57 int git_reference_iterator_glob_new(
58 	git_reference_iterator **out_,
59 	git_repository *repo,
60 	const(char)* glob);
61 int git_reference_next(git_reference **out_, git_reference_iterator *iter);
62 int git_reference_next_name(const(char)** out_, git_reference_iterator *iter);
63 void git_reference_iterator_free(git_reference_iterator *iter);
64 int git_reference_foreach_glob(
65 	git_repository *repo,
66 	const(char)* glob,
67 	git_reference_foreach_name_cb callback,
68 	void *payload);
69 int git_reference_has_log(git_reference *ref_);
70 int git_reference_is_branch(git_reference *ref_);
71 int git_reference_is_remote(git_reference *ref_);
72 int git_reference_is_tag(git_reference *ref_);
73 
74 enum git_reference_normalize_t {
75 	GIT_REF_FORMAT_NORMAL = 0u,
76 	GIT_REF_FORMAT_ALLOW_ONELEVEL = (1u << 0),
77 	GIT_REF_FORMAT_REFSPEC_PATTERN = (1u << 1),
78 	GIT_REF_FORMAT_REFSPEC_SHORTHAND = (1u << 2),
79 }
80 mixin _ExportEnumMembers!git_reference_normalize_t;
81 
82 int git_reference_normalize_name(
83 	char *buffer_out,
84 	size_t buffer_size,
85 	const(char)* name,
86 	uint flags);
87 int git_reference_peel(
88 	git_object **out_,
89 	git_reference *ref_,
90 	git_otype type);
91 int git_reference_is_valid_name(const(char)* refname);
92 const(char)*  git_reference_shorthand(git_reference *ref_);