[libvirt] [rust PATCH v2 3/5] libvirt-rust: stream: automated lint
Sahid Orentino Ferdjaoui
sahid.ferdjaoui at canonical.com
Mon Jan 13 10:53:14 UTC 2020
On Fri, Jan 10, 2020 at 11:35:32AM -0700, Zixing Liu wrote:
> On 2020-01-10 04:48, Sahid Orentino Ferdjaoui wrote:
>
> > On Tue, Dec 24, 2019 at 12:12:53AM -0700, Zixing Liu wrote:
> >> * used rustfmt to clean up the code
> >>
> >> Signed-off-by: Zixing Liu <liushuyu at aosc.io>
> >> ---
> >> src/stream.rs | 97 +++++++++++++++++++++++++++++----------------------
> >> 1 file changed, 56 insertions(+), 41 deletions(-)
> > NAK, we don't have specific rule for that. Even if I'm OK with you to
> > use rustfmt we should consider having CI to also check that.
>
> Well, it's also one part of my habit since formatted code is more
> readable and looks neat. Speaking of CI, I think you could
> integrate the format check or even commit format changes in CI using
> `cargo-fmt` which comes with every Rust installation.
Do you think you can add with this patch a change in CI so that format
of src/stream.rs will be verified? So basically we will avoid
regression and we will be able to clean the code incrementally.
>
> >> diff --git a/src/stream.rs b/src/stream.rs
> >> index 1ffd186..0d84fd7 100644
> >> --- a/src/stream.rs
> >> +++ b/src/stream.rs
> >> @@ -18,8 +18,8 @@
> >>
> >> extern crate libc;
> >>
> >> -use connect::Connect;
> >> use connect::sys::virConnectPtr;
> >> +use connect::Connect;
> >> use std::convert::TryFrom;
> >>
> >> use error::Error;
> >> @@ -33,28 +33,28 @@ pub mod sys {
> >>
> >> #[link(name = "virt")]
> >> extern "C" {
> >> - fn virStreamNew(c: virConnectPtr,
> >> - flags: libc::c_uint)
> >> - -> sys::virStreamPtr;
> >> - fn virStreamSend(c: sys::virStreamPtr,
> >> - data: *const libc::c_char,
> >> - nbytes: libc::size_t)
> >> - -> libc::c_int;
> >> - fn virStreamRecv(c: sys::virStreamPtr,
> >> - data: *mut libc::c_char,
> >> - nbytes: libc::size_t)
> >> - -> libc::c_int;
> >> + fn virStreamNew(c: virConnectPtr, flags: libc::c_uint) -> sys::virStreamPtr;
> >> + fn virStreamSend(
> >> + c: sys::virStreamPtr,
> >> + data: *const libc::c_char,
> >> + nbytes: libc::size_t,
> >> + ) -> libc::c_int;
> >> + fn virStreamRecv(
> >> + c: sys::virStreamPtr,
> >> + data: *mut libc::c_char,
> >> + nbytes: libc::size_t,
> >> + ) -> libc::c_int;
> >> fn virStreamFree(c: sys::virStreamPtr) -> libc::c_int;
> >> fn virStreamAbort(c: sys::virStreamPtr) -> libc::c_int;
> >> fn virStreamFinish(c: sys::virStreamPtr) -> libc::c_int;
> >> - fn virStreamEventAddCallback(c: sys::virStreamPtr,
> >> - event: libc::c_int,
> >> - callback: StreamEventCallback,
> >> - opaque: *const libc::c_void,
> >> - ff: FreeCallback)
> >> - -> libc::c_int;
> >> - fn virStreamEventUpdateCallback(c: sys::virStreamPtr,
> >> - events: libc::c_int) -> libc::c_int;
> >> + fn virStreamEventAddCallback(
> >> + c: sys::virStreamPtr,
> >> + event: libc::c_int,
> >> + callback: StreamEventCallback,
> >> + opaque: *const libc::c_void,
> >> + ff: FreeCallback,
> >> + ) -> libc::c_int;
> >> + fn virStreamEventUpdateCallback(c: sys::virStreamPtr, events: libc::c_int) -> libc::c_int;
> >> fn virStreamEventRemoveCallback(c: sys::virStreamPtr) -> libc::c_int;
> >> }
> >>
> >> @@ -71,14 +71,16 @@ pub type StreamEventCallback = extern "C" fn(sys::virStreamPtr, libc::c_int, *co
> >> pub type FreeCallback = extern "C" fn(*mut libc::c_void);
> >>
> >> // wrapper for callbacks
> >> -extern "C" fn event_callback(c: sys::virStreamPtr, flags: libc::c_int, opaque: *const libc::c_void) {
> >> - let flags = flags as StreamFlags;
> >> - let shadow_self = unsafe {
> >> - &mut*(opaque as *mut Stream)
> >> - };
> >> - if let Some(callback) = &mut shadow_self.callback {
> >> - callback(&Stream::from_ptr(c), flags);
> >> - }
> >> +extern "C" fn event_callback(
> >> + c: sys::virStreamPtr,
> >> + flags: libc::c_int,
> >> + opaque: *const libc::c_void,
> >> +) {
> >> + let flags = flags as StreamFlags;
> >> + let shadow_self = unsafe { &mut *(opaque as *mut Stream) };
> >> + if let Some(callback) = &mut shadow_self.callback {
> >> + callback(&Stream::from_ptr(c), flags);
> >> + }
> >> }
> >>
> >> extern "C" fn event_free(_opaque: *mut libc::c_void) {}
> >> @@ -93,16 +95,18 @@ impl Drop for Stream {
> >> fn drop(&mut self) {
> >> if self.ptr.is_some() {
> >> if let Err(e) = self.free() {
> >> - panic!("Unable to drop memory for Stream, code {}, message: {}",
> >> - e.code,
> >> - e.message)
> >> + panic!(
> >> + "Unable to drop memory for Stream, code {}, message: {}",
> >> + e.code, e.message
> >> + )
> >> }
> >> }
> >> if self.callback.is_some() {
> >> if let Err(e) = self.event_remove_callback() {
> >> - panic!("Unable to remove event callback for Stream, code {}, message: {}",
> >> - e.code,
> >> - e.message)
> >> + panic!(
> >> + "Unable to remove event callback for Stream, code {}, message: {}",
> >> + e.code, e.message
> >> + )
> >> }
> >> }
> >> }
> >> @@ -120,7 +124,10 @@ impl Stream {
> >> }
> >>
> >> pub fn from_ptr(ptr: sys::virStreamPtr) -> Stream {
> >> - Stream { ptr: Some(ptr), callback: None }
> >> + Stream {
> >> + ptr: Some(ptr),
> >> + callback: None,
> >> + }
> >> }
> >>
> >> pub fn as_ptr(&self) -> sys::virStreamPtr {
> >> @@ -160,7 +167,7 @@ impl Stream {
> >> virStreamSend(
> >> self.as_ptr(),
> >> data.as_ptr() as *mut libc::c_char,
> >> - data.len()
> >> + data.len(),
> >> )
> >> };
> >> usize::try_from(ret).map_err(|_| Error::new())
> >> @@ -177,10 +184,20 @@ impl Stream {
> >> usize::try_from(ret).map_err(|_| Error::new())
> >> }
> >>
> >> - pub fn event_add_callback<F: 'static + FnMut(&Stream, StreamEventType)>(&mut self, events: StreamEventType, cb: F) -> Result<(), Error> {
> >> + pub fn event_add_callback<F: 'static + FnMut(&Stream, StreamEventType)>(
> >> + &mut self,
> >> + events: StreamEventType,
> >> + cb: F,
> >> + ) -> Result<(), Error> {
> >> let ret = unsafe {
> >> let ptr = &*self as *const _ as *const _;
> >> - virStreamEventAddCallback(self.as_ptr(), events as libc::c_int, event_callback, ptr, event_free)
> >> + virStreamEventAddCallback(
> >> + self.as_ptr(),
> >> + events as libc::c_int,
> >> + event_callback,
> >> + ptr,
> >> + event_free,
> >> + )
> >> };
> >> if ret == -1 {
> >> return Err(Error::new());
> >> @@ -190,9 +207,7 @@ impl Stream {
> >> }
> >>
> >> pub fn event_update_callback(&self, events: StreamEventType) -> Result<(), Error> {
> >> - let ret = unsafe {
> >> - virStreamEventUpdateCallback(self.as_ptr(), events as libc::c_int)
> >> - };
> >> + let ret = unsafe { virStreamEventUpdateCallback(self.as_ptr(), events as libc::c_int) };
> >> if ret == -1 {
> >> return Err(Error::new());
> >> }
> >> --
> >> 2.24.1
More information about the libvir-list
mailing list