1 module deimos.git2.sys.refdb_backend; 2 3 import deimos.git2.common; 4 import deimos.git2.oid; 5 import deimos.git2.types; 6 7 extern (C): 8 9 struct git_reference_iterator { 10 git_refdb *db; 11 int function( 12 git_reference **ref_, 13 git_reference_iterator *iter) next; 14 int function( 15 const(char)** ref_name, 16 git_reference_iterator *iter) next_name; 17 void function( 18 git_reference_iterator *iter) free; 19 } 20 21 struct git_refdb_backend { 22 uint version_ = GIT_REFDB_BACKEND_VERSION; 23 int function( 24 int *exists, 25 git_refdb_backend *backend, 26 const(char)* ref_name) exists; 27 int function( 28 git_reference **out_, 29 git_refdb_backend *backend, 30 const(char)* ref_name) lookup; 31 int function( 32 git_reference_iterator **iter, 33 git_refdb_backend *backend, 34 const(char)* glob) iterator; 35 int function(git_refdb_backend *backend, 36 const(git_reference)* ref_, int force) write; 37 int function( 38 git_reference **out_, git_refdb_backend *backend, 39 const(char)* old_name, const(char)* new_name, int force) rename; 40 int function(git_refdb_backend *backend, const(char)* ref_name) del; 41 int function(git_refdb_backend *backend) compress; 42 void function(git_refdb_backend *backend) free; 43 int function(git_reflog **out_, git_refdb_backend *backend, const(char)* name) reflog_read; 44 int function(git_refdb_backend *backend, git_reflog *reflog) reflog_write; 45 int function(git_refdb_backend *_backend, const(char)* old_name, const(char)* new_name) reflog_rename; 46 int function(git_refdb_backend *backend, const(char)* name) reflog_delete; 47 } 48 49 enum GIT_REFDB_BACKEND_VERSION = 1; 50 enum git_refdb_backend GIT_REFDB_BACKEND_INIT = { GIT_REFDB_BACKEND_VERSION }; 51 52 int git_refdb_backend_fs( 53 git_refdb_backend **backend_out, 54 git_repository *repo); 55 int git_refdb_set_backend( 56 git_refdb *refdb, 57 git_refdb_backend *backend);