Re: [PATCH v7 4/4] libgit: add higher-level libgit crate

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2025.01.27 20:56, Junio C Hamano wrote:
> Josh Steadmon <steadmon@xxxxxxxxxx> writes:
> 
> > -.PHONY: libgit-sys
> > +.PHONY: libgit-sys libgit-rs
> >  libgit-sys:
> >  	$(QUIET)(\
> >  		cd contrib/libgit-sys && \
> >  		cargo build \
> >  	)
> > +libgit-rs:
> > +	$(QUIET)(\
> > +		cd contrib/libgit-rs && \
> > +		cargo build \
> > +	)
> >  ifdef INCLUDE_LIBGIT_RS
> > -all:: libgit-sys
> > +all:: libgit-sys libgit-rs
> >  endif
> 
> I somehow would have expected this part of the patch to do
> 
> 	libgit-sys libgit-rs:
> 		$(QUIET)( \
> 			cd contrib/$@ && cargo build \
> 		)
> 
> but the above longhand is fine.

Fixed since I'm sending out a V8 for Phillip's feedback anyway. Thanks.

> > +    /// Load the value for the given key and attempt to parse it as an i32. Dies with a fatal error
> > +    /// if the value cannot be parsed. Returns None if the key is not present.
> > +    pub fn get_int(&mut self, key: &str) -> Option<i32> {
> > +        let key = CString::new(key).expect("Couldn't convert to CString");
> > +        let mut val: c_int = 0;
> > +        unsafe {
> > +            if libgit_configset_get_int(self.0, key.as_ptr(), &mut val as *mut c_int) != 0 {
> > +                return None;
> > +            }
> > +        }
> > +
> > +        Some(val.into())
> > +    }
> 
> Nice.
> 
> I was wondering why libgit_configset_get_int() in [3/4] does not do
> better than just wrapping the raw C interface, which returns the
> error/success status separately from the value we parsed.  With this
> higher-layer wrapper around it, the interface becomes a bit more
> like a higher-level language.
> 
> Thanks, will queue.




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux