aboutsummaryrefslogtreecommitdiff
path: root/contrib/libgit-sys/src/lib.rs
diff options
context:
space:
mode:
authorCalvin Wan <calvinwan@google.com>2025-01-29 13:50:44 -0800
committerJunio C Hamano <gitster@pobox.com>2025-01-29 15:06:50 -0800
commit65c10aa8d5000e0ecab34a9652056f0520fe51ed (patch)
tree20cf8b5a947d7eff531b68a08af0a26691e68916 /contrib/libgit-sys/src/lib.rs
parentd76eb0dcccb19d2f85924a4be177ae76126bf5d3 (diff)
downloadgit-65c10aa8d5000e0ecab34a9652056f0520fe51ed.tar.xz
libgit: add higher-level libgit crate
The C functions exported by libgit-sys do not provide an idiomatic Rust interface. To make it easier to use these functions via Rust, add a higher-level "libgit" crate, that wraps the lower-level configset API with an interface that is more Rust-y. This combination of $X and $X-sys crates is a common pattern for FFI in Rust, as documented in "The Cargo Book" [1]. [1] https://doc.rust-lang.org/cargo/reference/build-scripts.html#-sys-packages Co-authored-by: Josh Steadmon <steadmon@google.com> Signed-off-by: Josh Steadmon <steadmon@google.com> Signed-off-by: Calvin Wan <calvinwan@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib/libgit-sys/src/lib.rs')
-rw-r--r--contrib/libgit-sys/src/lib.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/contrib/libgit-sys/src/lib.rs b/contrib/libgit-sys/src/lib.rs
index dadb4e5f40..4bfc650450 100644
--- a/contrib/libgit-sys/src/lib.rs
+++ b/contrib/libgit-sys/src/lib.rs
@@ -1,3 +1,5 @@
+use std::ffi::c_void;
+
#[cfg(has_std__ffi__c_char)]
use std::ffi::{c_char, c_int};
@@ -19,6 +21,8 @@ pub struct libgit_config_set {
}
extern "C" {
+ pub fn free(ptr: *mut c_void);
+
pub fn libgit_user_agent() -> *const c_char;
pub fn libgit_user_agent_sanitized() -> *const c_char;