about summary refs log tree commit diff
path: root/library/std/src/os/macos
diff options
context:
space:
mode:
authorbeetrees <b@beetr.ee>2023-03-30 15:16:06 +0100
committerbeetrees <b@beetr.ee>2023-05-15 15:04:39 +0100
commitdb90a0b78d9d4f455fa6e1fd9676ca264e370803 (patch)
tree98a703afa53342963b2f7d7c9721671fc76aed65 /library/std/src/os/macos
parent8006510ab0f69ee75e9c3f7e8bff3776886dae51 (diff)
Add creation time support to `FileTimes` on apple and windows
Diffstat (limited to 'library/std/src/os/macos')
-rw-r--r--library/std/src/os/macos/fs.rs22
1 files changed, 20 insertions, 2 deletions
diff --git a/library/std/src/os/macos/fs.rs b/library/std/src/os/macos/fs.rs
index 91915da6a43..fe82d03d869 100644
--- a/library/std/src/os/macos/fs.rs
+++ b/library/std/src/os/macos/fs.rs
@@ -1,7 +1,9 @@
 #![stable(feature = "metadata_ext", since = "1.1.0")]
 
-use crate::fs::Metadata;
-use crate::sys_common::AsInner;
+use crate::fs::{self, Metadata};
+use crate::sealed::Sealed;
+use crate::sys_common::{AsInner, AsInnerMut, IntoInner};
+use crate::time::SystemTime;
 
 #[allow(deprecated)]
 use crate::os::macos::raw;
@@ -146,3 +148,19 @@ impl MetadataExt for Metadata {
         [qspare[0] as u64, qspare[1] as u64]
     }
 }
+
+/// OS-specific extensions to [`fs::FileTimes`].
+#[unstable(feature = "file_set_times", issue = "98245")]
+pub trait FileTimesExt: Sealed {
+    /// Set the creation time of a file.
+    #[unstable(feature = "file_set_times", issue = "98245")]
+    fn set_created(self, t: SystemTime) -> Self;
+}
+
+#[unstable(feature = "file_set_times", issue = "98245")]
+impl FileTimesExt for fs::FileTimes {
+    fn set_created(mut self, t: SystemTime) -> Self {
+        self.as_inner_mut().set_created(t.into_inner());
+        self
+    }
+}