diff --git a/libgit2-rs/Cargo.toml b/libgit2-rs/Cargo.toml index cedd57f..05abf68 100644 --- a/libgit2-rs/Cargo.toml +++ b/libgit2-rs/Cargo.toml @@ -2,6 +2,6 @@ name = "libgit2-rs" version = "0.1.0" authors = ["You "] -build = "build.rs" +edition = "2018" [dependencies] diff --git a/libgit2-rs/build.rs b/libgit2-rs/build.rs index ee72958..5657a46 100644 --- a/libgit2-rs/build.rs +++ b/libgit2-rs/build.rs @@ -1,3 +1,3 @@ fn main() { - println!("cargo:rustc-link-search=native=/home/jimb/libgit2-0.25.1/build"); + println!(r"cargo:rustc-link-search=native=/home/jimb/libgit2-0.25.1/build"); } diff --git a/libgit2-rs/src/main.rs b/libgit2-rs/src/main.rs index 4a89e01..30306e1 100644 --- a/libgit2-rs/src/main.rs +++ b/libgit2-rs/src/main.rs @@ -1,3 +1,6 @@ +#![warn(rust_2018_idioms)] +#![allow(elided_lifetimes_in_paths)] + mod raw; use std::ffi::CStr; @@ -48,9 +51,12 @@ fn main() { raw::git_repository_open(&mut repo, path.as_ptr())); let c_name = b"HEAD\0".as_ptr() as *const c_char; - let mut oid = mem::uninitialized(); - check("looking up HEAD", - raw::git_reference_name_to_id(&mut oid, repo, c_name)); + let oid = { + let mut oid = mem::MaybeUninit::uninit(); + check("looking up HEAD", + raw::git_reference_name_to_id(oid.as_mut_ptr(), repo, c_name)); + oid.assume_init() + }; let mut commit = ptr::null_mut(); check("looking up commit", diff --git a/libgit2-rs/src/raw.rs b/libgit2-rs/src/raw.rs index d8a2d64..a6f2acb 100644 --- a/libgit2-rs/src/raw.rs +++ b/libgit2-rs/src/raw.rs @@ -25,8 +25,8 @@ extern { pub fn git_commit_free(commit: *mut git_commit); } -pub enum git_repository {} -pub enum git_commit {} +#[repr(C)] pub struct git_repository { _private: [u8; 0] } +#[repr(C)] pub struct git_commit { _private: [u8; 0] } #[repr(C)] pub struct git_error { @@ -34,9 +34,11 @@ pub struct git_error { pub klass: c_int } +pub const GIT_OID_RAWSZ: usize = 20; + #[repr(C)] pub struct git_oid { - pub id: [c_uchar; 20] + pub id: [c_uchar; GIT_OID_RAWSZ] } pub type git_time_t = i64;