aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/hash.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/hash.rs b/src/hash.rs
index 0ec0ab0490..70bb8095e8 100644
--- a/src/hash.rs
+++ b/src/hash.rs
@@ -12,6 +12,7 @@
use std::error::Error;
use std::fmt::{self, Debug, Display};
+use std::os::raw::c_void;
pub const GIT_MAX_RAWSZ: usize = 32;
@@ -177,4 +178,17 @@ impl HashAlgorithm {
HashAlgorithm::SHA256 => &Self::SHA256_NULL_OID,
}
}
+
+ /// A pointer to the C `struct git_hash_algo` for interoperability with C.
+ pub fn hash_algo_ptr(self) -> *const c_void {
+ unsafe { c::hash_algo_ptr_by_number(self as u32) }
+ }
+}
+
+pub mod c {
+ use std::os::raw::c_void;
+
+ extern "C" {
+ pub fn hash_algo_ptr_by_number(n: u32) -> *const c_void;
+ }
}