feat: adding ext that returns change_time for Windows · model-checking/verify-rust-std@54728b1 (original) (raw)
`@@ -32,6 +32,7 @@ pub struct FileAttr {
`
32
32
`creation_time: c::FILETIME,
`
33
33
`last_access_time: c::FILETIME,
`
34
34
`last_write_time: c::FILETIME,
`
``
35
`+
change_time: Option<c::FILETIME>,
`
35
36
`file_size: u64,
`
36
37
`reparse_tag: u32,
`
37
38
`volume_serial_number: Option,
`
`@@ -377,6 +378,7 @@ impl File {
`
377
378
`creation_time: info.ftCreationTime,
`
378
379
`last_access_time: info.ftLastAccessTime,
`
379
380
`last_write_time: info.ftLastWriteTime,
`
``
381
`+
change_time: None, // Only available in FILE_BASIC_INFO
`
380
382
`file_size: (info.nFileSizeLow as u64) | ((info.nFileSizeHigh as u64) << 32),
`
381
383
` reparse_tag,
`
382
384
`volume_serial_number: Some(info.dwVolumeSerialNumber),
`
`@@ -413,6 +415,10 @@ impl File {
`
413
415
`dwLowDateTime: info.LastWriteTime as u32,
`
414
416
`dwHighDateTime: (info.LastWriteTime >> 32) as u32,
`
415
417
`},
`
``
418
`+
change_time: Some(c::FILETIME {
`
``
419
`+
dhLowDateTime: info.ChangeTime as c::DWORD,
`
``
420
`+
dhHighDateTime: (info.ChangeTime >> 32) as c::DWORD,
`
``
421
`+
}),
`
416
422
`file_size: 0,
`
417
423
`reparse_tag: 0,
`
418
424
`volume_serial_number: None,
`
`@@ -957,6 +963,10 @@ impl FileAttr {
`
957
963
`to_u64(&self.creation_time)
`
958
964
`}
`
959
965
``
``
966
`+
pub fn changed_u64(&self) -> Option {
`
``
967
`+
self.change_time.as_ref().map(|c| to_u64(c))
`
``
968
`+
}
`
``
969
+
960
970
`pub fn volume_serial_number(&self) -> Option {
`
961
971
`self.volume_serial_number
`
962
972
`}
`
`@@ -976,6 +986,7 @@ impl From<c::WIN32_FIND_DATAW> for FileAttr {
`
976
986
`creation_time: wfd.ftCreationTime,
`
977
987
`last_access_time: wfd.ftLastAccessTime,
`
978
988
`last_write_time: wfd.ftLastWriteTime,
`
``
989
`+
change_time: None,
`
979
990
`file_size: ((wfd.nFileSizeHigh as u64) << 32) | (wfd.nFileSizeLow as u64),
`
980
991
`reparse_tag: if wfd.dwFileAttributes & c::FILE_ATTRIBUTE_REPARSE_POINT != 0 {
`
981
992
`// reserved unless this is a reparse point
`