summaryrefslogtreecommitdiff
path: root/ext/io/fs.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ext/io/fs.rs')
-rw-r--r--ext/io/fs.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/ext/io/fs.rs b/ext/io/fs.rs
index 885426520..7ef02315b 100644
--- a/ext/io/fs.rs
+++ b/ext/io/fs.rs
@@ -94,6 +94,7 @@ pub struct FsStat {
pub mtime: Option<u64>,
pub atime: Option<u64>,
pub birthtime: Option<u64>,
+ pub ctime: Option<u64>,
pub dev: u64,
pub ino: u64,
@@ -153,6 +154,16 @@ impl FsStat {
}
}
+ #[inline(always)]
+ fn get_ctime(ctime_or_0: i64) -> Option<u64> {
+ if ctime_or_0 > 0 {
+ // ctime return seconds since epoch, but we need milliseconds
+ return Some(ctime_or_0 as u64 * 1000);
+ }
+
+ None
+ }
+
Self {
is_file: metadata.is_file(),
is_directory: metadata.is_dir(),
@@ -162,6 +173,7 @@ impl FsStat {
mtime: to_msec(metadata.modified()),
atime: to_msec(metadata.accessed()),
birthtime: to_msec(metadata.created()),
+ ctime: get_ctime(unix_or_zero!(ctime)),
dev: unix_or_zero!(dev),
ino: unix_or_zero!(ino),