1 module deimos.git2.sys.filter;
2
3 import deimos.git2.filter;
4 import deimos.git2.buffer;
5 import deimos.git2.oid;
6 import deimos.git2.types;
7
8 git_filter* git_filter_lookup(const(char)* name);
9
10 enum GIT_FILTER_CRLF = "crlf";
11 enum GIT_FILTER_IDENT = "ident";
12 enum GIT_FILTER_CRLF_PRIORITY = 0;
13 enum GIT_FILTER_IDENT_PRIORITY = 100;
14 enum GIT_FILTER_DRIVER_PRIORITY = 200;
15
16 int git_filter_list_new(
17 git_filter_list **out_, git_repository *repo, git_filter_mode_t mode);
18 int git_filter_list_push(
19 git_filter_list *fl, git_filter *filter, void *payload);
20 size_t git_filter_list_length(const(git_filter_list)* fl);
21 struct git_filter_source {
22 @disable this();
23 @disable this(this);
24 }
25
26 git_repository* git_filter_source_repo(const(git_filter_source)* src);
27 const(char)* git_filter_source_path(const(git_filter_source)* src);
28 uint16_t git_filter_source_filemode(const(git_filter_source)* src);
29 const(git_oid)* git_filter_source_id(const(git_filter_source)* src);
30 git_filter_mode_t git_filter_source_mode(const(git_filter_source)* src);
31
32 alias git_filter_init_fn = int function(git_filter *self);
33 alias git_filter_shutdown_fn = void function(git_filter *self);
34 alias git_filter_check_fn = int function(
35 git_filter *self,
36 void **payload,
37 const(git_filter_source)* src,
38 const(char)* *attr_values);
39 alias git_filter_apply_fn = int function(
40 git_filter *self,
41 void **payload,
42 git_buf *to,
43 const(git_buf)* from,
44 const(git_filter_source)* src);
45 alias git_filter_cleanup_fn = void function(
46 git_filter *self,
47 void *payload);
48
49 struct git_filter {
50 uint version_ = GIT_FILTER_VERSION;
51
52 const(char)* attributes;
53
54 git_filter_init_fn initialize;
55 git_filter_shutdown_fn shutdown;
56 git_filter_check_fn check;
57 git_filter_apply_fn apply;
58 git_filter_cleanup_fn cleanup;
59 }
60
61 enum GIT_FILTER_VERSION = 1;
62
63 int git_filter_register(
64 const(char)* name, git_filter *filter, int priority);
65 int git_filter_unregister(const(char)* name);