Skip to content

Commit 1ff84f0

Browse files
authored
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).
2 parents 4d6d601 + a4cb0b9 commit 1ff84f0

File tree

1 file changed

+9
-5
lines changed
  • library/std/src/os/windows

1 file changed

+9
-5
lines changed

library/std/src/os/windows/fs.rs

+9-5
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use crate::fs::{self, Metadata, OpenOptions};
88
use crate::io;
99
use crate::path::Path;
10+
use crate::sealed::Sealed;
1011
use crate::sys;
1112
use crate::sys_common::{AsInner, AsInnerMut};
1213

@@ -502,17 +503,20 @@ impl MetadataExt for Metadata {
502503
/// Windows-specific extensions to [`fs::FileType`].
503504
///
504505
/// On Windows, a symbolic link knows whether it is a file or directory.
505-
#[unstable(feature = "windows_file_type_ext", issue = "none")]
506-
pub trait FileTypeExt {
506+
#[stable(feature = "windows_file_type_ext", since = "1.64.0")]
507+
pub trait FileTypeExt: Sealed {
507508
/// Returns `true` if this file type is a symbolic link that is also a directory.
508-
#[unstable(feature = "windows_file_type_ext", issue = "none")]
509+
#[stable(feature = "windows_file_type_ext", since = "1.64.0")]
509510
fn is_symlink_dir(&self) -> bool;
510511
/// Returns `true` if this file type is a symbolic link that is also a file.
511-
#[unstable(feature = "windows_file_type_ext", issue = "none")]
512+
#[stable(feature = "windows_file_type_ext", since = "1.64.0")]
512513
fn is_symlink_file(&self) -> bool;
513514
}
514515

515-
#[unstable(feature = "windows_file_type_ext", issue = "none")]
516+
#[stable(feature = "windows_file_type_ext", since = "1.64.0")]
517+
impl Sealed for fs::FileType {}
518+
519+
#[stable(feature = "windows_file_type_ext", since = "1.64.0")]
516520
impl FileTypeExt for fs::FileType {
517521
fn is_symlink_dir(&self) -> bool {
518522
self.as_inner().is_symlink_dir()

0 commit comments

Comments
 (0)