-
Notifications
You must be signed in to change notification settings - Fork 13.5k
implement std::fs::set_permissions_nofollow on unix #142938
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
implement std::fs::set_permissions_nofollow on unix #142938
Conversation
r? @ibraheemdev rustbot has assigned @ibraheemdev. Use |
This comment has been minimized.
This comment has been minimized.
3ff03e0
to
4614625
Compare
This comment has been minimized.
This comment has been minimized.
4614625
to
7d69442
Compare
This comment has been minimized.
This comment has been minimized.
7d69442
to
949ac68
Compare
This comment has been minimized.
This comment has been minimized.
949ac68
to
8f23f36
Compare
This comment has been minimized.
This comment has been minimized.
8f23f36
to
369acf8
Compare
This comment has been minimized.
This comment has been minimized.
369acf8
to
01c37a5
Compare
01c37a5
to
81cb0d8
Compare
I'm not sure we should merge this if it panics on windows. |
@ibraheemdev fair, my instinct was just to avoid having a can library features be marked as incomplete, or is that only for compiler features? |
I'm not sure what you mean,
I think we could do that, but I'm not sure how useful it would be to have a platform-specific implementation in a cross-platform module, especially because the unix implementation is already accessible. |
Generated docs, my bad. I know rustdoc can't generate docs for all platforms at once, and the standard library does some postprocessing to make it look decent. I believe that postprocessing only happens on the
I'm really not sure what you mean by that? It's not intended to stay platform-specific, i'm just personally not able to write the windows impl for various reasons. Are you saying there's no value in this being in the standard library because it can just be implemented in user code? isn't that the case for all libc-backed i/o? regardless, the ACP has already been approved, and implementing this just for unix was discussed in this zulip thread |
Sorry, I just meant I don't see the value in merging the unix-only implementation, given that the unix-only implementation is already accessible, and the value of this function is in that it works cross-platform. That said I guess it's fine to move the feature forward by landing this, I didn't realize it's already been discussed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a couple of docs nits.
/// | ||
/// # Platform-specific behavior | ||
/// | ||
/// Currently unimplmented on windows. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/// Currently unimplmented on windows. | |
/// Currently unimplemented on Windows. |
/// | ||
/// Currently unimplmented on windows. | ||
/// | ||
/// On unix platforms, this results in a [`FilesystemLoop`] error if the last element is a symlink. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/// On unix platforms, this results in a [`FilesystemLoop`] error if the last element is a symlink. | |
/// On Unix platforms, this results in a [`FilesystemLoop`] error if the last element is a symlink. |
|
||
#[cfg(not(unix))] | ||
pub fn set_permissions_nofollow(_path: &Path, _perm: crate::fs::Permissions) -> io::Result<()> { | ||
crate::unimplemented!("set_permissions_nofollow is not implmented on non-unix platforms") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
crate::unimplemented!("set_permissions_nofollow is not implmented on non-unix platforms") | |
crate::unimplemented!("`set_permissions_nofollow` is currently only implemented on Unix platforms") |
implementation of #141607