diff options
| author | Yuki Okushi <jtitor@2k36.org> | 2022-07-27 11:52:52 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-27 11:52:52 +0900 |
| commit | 1ff84f09b29effb82184cb62b99a4c721375ccc4 (patch) | |
| tree | bfdddf1c7e640a024235eee86c41f82711a6aac4 | |
| parent | 4d6d601c8a83284d6b23c253a3e2a060fd197316 (diff) | |
| parent | a4cb0b90c049fd8bc6a4a13edad69d34b98627f0 (diff) | |
| download | rust-1ff84f09b29effb82184cb62b99a4c721375ccc4.tar.gz rust-1ff84f09b29effb82184cb62b99a4c721375ccc4.zip | |
Rollup merge of #98583 - joshtriplett:stabilize-windows-symlink-types, r=thomcc
Stabilize Windows `FileTypeExt` with `is_symlink_dir` and `is_symlink_file` These calls allow detecting whether a symlink is a file or a directory, a distinction Windows maintains, and one important to software that wants to do further operations on the symlink (e.g. removing it).
| -rw-r--r-- | library/std/src/os/windows/fs.rs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/library/std/src/os/windows/fs.rs b/library/std/src/os/windows/fs.rs index f15baff59db..a091f06dd53 100644 --- a/library/std/src/os/windows/fs.rs +++ b/library/std/src/os/windows/fs.rs @@ -7,6 +7,7 @@ use crate::fs::{self, Metadata, OpenOptions}; use crate::io; use crate::path::Path; +use crate::sealed::Sealed; use crate::sys; use crate::sys_common::{AsInner, AsInnerMut}; @@ -502,17 +503,20 @@ impl MetadataExt for Metadata { /// Windows-specific extensions to [`fs::FileType`]. /// /// On Windows, a symbolic link knows whether it is a file or directory. -#[unstable(feature = "windows_file_type_ext", issue = "none")] -pub trait FileTypeExt { +#[stable(feature = "windows_file_type_ext", since = "1.64.0")] +pub trait FileTypeExt: Sealed { /// Returns `true` if this file type is a symbolic link that is also a directory. - #[unstable(feature = "windows_file_type_ext", issue = "none")] + #[stable(feature = "windows_file_type_ext", since = "1.64.0")] fn is_symlink_dir(&self) -> bool; /// Returns `true` if this file type is a symbolic link that is also a file. - #[unstable(feature = "windows_file_type_ext", issue = "none")] + #[stable(feature = "windows_file_type_ext", since = "1.64.0")] fn is_symlink_file(&self) -> bool; } -#[unstable(feature = "windows_file_type_ext", issue = "none")] +#[stable(feature = "windows_file_type_ext", since = "1.64.0")] +impl Sealed for fs::FileType {} + +#[stable(feature = "windows_file_type_ext", since = "1.64.0")] impl FileTypeExt for fs::FileType { fn is_symlink_dir(&self) -> bool { self.as_inner().is_symlink_dir() |
