diff --git a/src/macros.rs b/src/macros.rs index 1871cfafda192..9f7fb40e8bb8c 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -73,7 +73,7 @@ macro_rules! s { (it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => ( __item! { #[repr(C)] - #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] + #[cfg_attr(feature = "extra_traits", derive(core::fmt::Debug, core::cmp::Eq, core::hash::Hash, core::cmp::PartialEq))] #[allow(deprecated)] $(#[$attr])* pub struct $i { $($field)* } @@ -127,7 +127,7 @@ macro_rules! s_no_extra_traits { macro_rules! e { ($($(#[$attr:meta])* pub enum $i:ident { $($field:tt)* })*) => ($( __item! { - #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] + #[cfg_attr(feature = "extra_traits", derive(core::fmt::Debug, core::cmp::Eq, core::hash::Hash, core::cmp::PartialEq))] $(#[$attr])* pub enum $i { $($field)* } } @@ -142,7 +142,7 @@ macro_rules! e { macro_rules! s_paren { ($($(#[$attr:meta])* pub struct $i:ident ( $($field:tt)* ); )* ) => ($( __item! { - #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] + #[cfg_attr(feature = "extra_traits", derive(core::fmt::Debug, core::cmp::Eq, core::hash::Hash, core::cmp::PartialEq))] $(#[$attr])* pub struct $i ( $($field)* ); } diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index faad040ef99e6..5e86516db17bb 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -1,5 +1,12 @@ //! x86_64-specific definitions for 64-bit linux-like values +cfg_if! { + if #[cfg(feature = "extra_traits")] { + use core::cmp::{Eq, PartialEq}; + use core::iter::Iterator; + } +} + pub type c_char = i8; pub type wchar_t = i32; pub type nlink_t = u64; @@ -332,7 +339,7 @@ cfg_if! { impl Eq for user_fpregs_struct {} impl ::fmt::Debug for user_fpregs_struct { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt<'a>(&self, f: &mut ::fmt::Formatter<'a>) -> ::fmt::Result { f.debug_struct("user_fpregs_struct") .field("cwd", &self.cwd) .field("ftw", &self.ftw) @@ -377,7 +384,7 @@ cfg_if! { impl Eq for ucontext_t {} impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt<'a>(&self, f: &mut ::fmt::Formatter<'a>) -> ::fmt::Result { f.debug_struct("ucontext_t") .field("uc_flags", &self.uc_flags) .field("uc_link", &self.uc_link) diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index e8b33259303ef..df4036bbdfa78 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1,3 +1,10 @@ +cfg_if! { + if #[cfg(feature = "extra_traits")] { + use core::cmp::{Eq, PartialEq}; + use core::iter::Iterator; + } +} + pub type pthread_t = c_ulong; pub type __priority_which_t = ::c_uint; pub type __rlimit_resource_t = ::c_uint; @@ -453,7 +460,7 @@ cfg_if! { impl Eq for utmpx {} impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt<'a>(&self, f: &mut ::fmt::Formatter<'a>) -> ::fmt::Result { f.debug_struct("utmpx") .field("ut_type", &self.ut_type) .field("ut_pid", &self.ut_pid) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index efd7a8ed8df15..acc57bea5921a 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1,5 +1,13 @@ //! Linux-specific definitions for linux-like values +cfg_if! { + if #[cfg(feature = "extra_traits")] { + use core::cmp::{Eq, PartialEq}; + use core::fmt::Debug; + use core::iter::Iterator; + } +} + pub type useconds_t = u32; pub type dev_t = u64; pub type socklen_t = u32; @@ -627,7 +635,7 @@ cfg_if! { } impl Eq for sockaddr_nl {} impl ::fmt::Debug for sockaddr_nl { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt<'a>(&self, f: &mut ::fmt::Formatter<'a>) -> ::fmt::Result { f.debug_struct("sockaddr_nl") .field("nl_family", &self.nl_family) .field("nl_pid", &self.nl_pid) @@ -660,7 +668,7 @@ cfg_if! { impl Eq for dirent {} impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt<'a>(&self, f: &mut ::fmt::Formatter<'a>) -> ::fmt::Result { f.debug_struct("dirent") .field("d_ino", &self.d_ino) .field("d_off", &self.d_off) @@ -698,7 +706,7 @@ cfg_if! { impl Eq for dirent64 {} impl ::fmt::Debug for dirent64 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt<'a>(&self, f: &mut ::fmt::Formatter<'a>) -> ::fmt::Result { f.debug_struct("dirent64") .field("d_ino", &self.d_ino) .field("d_off", &self.d_off) @@ -728,7 +736,7 @@ cfg_if! { impl Eq for pthread_cond_t {} impl ::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt<'a>(&self, f: &mut ::fmt::Formatter<'a>) -> ::fmt::Result { f.debug_struct("pthread_cond_t") // FIXME: .field("size", &self.size) .finish() @@ -750,7 +758,7 @@ cfg_if! { impl Eq for pthread_mutex_t {} impl ::fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt<'a>(&self, f: &mut ::fmt::Formatter<'a>) -> ::fmt::Result { f.debug_struct("pthread_mutex_t") // FIXME: .field("size", &self.size) .finish() @@ -772,7 +780,7 @@ cfg_if! { impl Eq for pthread_rwlock_t {} impl ::fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt<'a>(&self, f: &mut ::fmt::Formatter<'a>) -> ::fmt::Result { f.debug_struct("pthread_rwlock_t") // FIXME: .field("size", &self.size) .finish() @@ -806,7 +814,7 @@ cfg_if! { impl Eq for sockaddr_alg {} impl ::fmt::Debug for sockaddr_alg { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt<'a>(&self, f: &mut ::fmt::Formatter<'a>) -> ::fmt::Result { f.debug_struct("sockaddr_alg") .field("salg_family", &self.salg_family) .field("salg_type", &self.salg_type) @@ -851,7 +859,7 @@ cfg_if! { #[allow(deprecated)] impl ::fmt::Debug for af_alg_iv { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt<'a>(&self, f: &mut ::fmt::Formatter<'a>) -> ::fmt::Result { f.debug_struct("af_alg_iv") .field("ivlen", &self.ivlen) .finish() @@ -875,7 +883,7 @@ cfg_if! { } impl Eq for mq_attr {} impl ::fmt::Debug for mq_attr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt<'a>(&self, f: &mut ::fmt::Formatter<'a>) -> ::fmt::Result { f.debug_struct("mq_attr") .field("mq_flags", &self.mq_flags) .field("mq_maxmsg", &self.mq_maxmsg) diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 2a1b95f10adf0..1bdf0f56e45f5 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1,3 +1,11 @@ +cfg_if! { + if #[cfg(feature = "extra_traits")] { + use core::cmp::{Eq, PartialEq}; + use core::fmt::Debug; + use core::iter::Iterator; + } +} + pub type sa_family_t = u16; pub type speed_t = ::c_uint; pub type tcflag_t = ::c_uint; @@ -264,7 +272,7 @@ cfg_if! { } impl Eq for epoll_event {} impl ::fmt::Debug for epoll_event { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt<'a>(&self, f: &mut ::fmt::Formatter<'a>) -> ::fmt::Result { let events = self.events; let u64 = self.u64; f.debug_struct("epoll_event") @@ -294,7 +302,7 @@ cfg_if! { } impl Eq for sockaddr_un {} impl ::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt<'a>(&self, f: &mut ::fmt::Formatter<'a>) -> ::fmt::Result { f.debug_struct("sockaddr_un") .field("sun_family", &self.sun_family) // FIXME: .field("sun_path", &self.sun_path) @@ -322,7 +330,7 @@ cfg_if! { impl Eq for sockaddr_storage {} impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt<'a>(&self, f: &mut ::fmt::Formatter<'a>) -> ::fmt::Result { f.debug_struct("sockaddr_storage") .field("ss_family", &self.ss_family) .field("__ss_align", &self.__ss_align) @@ -375,7 +383,7 @@ cfg_if! { impl Eq for utsname {} impl ::fmt::Debug for utsname { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt<'a>(&self, f: &mut ::fmt::Formatter<'a>) -> ::fmt::Result { f.debug_struct("utsname") // FIXME: .field("sysname", &self.sysname) // FIXME: .field("nodename", &self.nodename) @@ -409,7 +417,7 @@ cfg_if! { } impl Eq for sigevent {} impl ::fmt::Debug for sigevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + fn fmt<'a>(&self, f: &mut ::fmt::Formatter<'a>) -> ::fmt::Result { f.debug_struct("sigevent") .field("sigev_value", &self.sigev_value) .field("sigev_signo", &self.sigev_signo) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index b3c0b47141b45..2c4acbcf69695 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -3,6 +3,9 @@ //! More functions and definitions can be found in the more specific modules //! according to the platform in question. +#[cfg(feature = "extra_traits")] +use core::fmt::Debug; + pub type c_schar = i8; pub type c_uchar = u8; pub type c_short = i16;