/// the Unix epoch. Until the next semver bump, these unsigned fields are
/// deprecated, and this trait provides accessors which return their values
/// as signed integers.
-#[cfg(all(unix, not(any(target_os = "aix", target_os = "nto"))))]
+#[cfg(all(unix))]
pub trait StatExt {
/// Return the value of the `st_atime` field, casted to the correct type.
fn atime(&self) -> i64;
fn ctime(&self) -> i64;
}
-#[cfg(all(unix, not(any(target_os = "aix", target_os = "nto"))))]
+#[cfg(all(
+ unix,
+ not(any(target_os = "aix", target_os = "hurd", target_os = "nto"))
+))]
#[allow(deprecated)]
impl StatExt for Stat {
#[inline]
self.st_ctime as i64
}
}
+
+#[cfg(any(target_os = "aix", target_os = "hurd", target_os = "nto"))]
+#[allow(deprecated)]
+impl StatExt for Stat {
+ #[inline]
+ fn atime(&self) -> i64 {
+ self.st_atim.tv_sec as i64
+ }
+
+ #[inline]
+ fn mtime(&self) -> i64 {
+ self.st_mtim.tv_sec as i64
+ }
+
+ #[inline]
+ fn ctime(&self) -> i64 {
+ self.st_ctim.tv_sec as i64
+ }
+}