Feature gate: #![feature(fs_media_dirs)]
This is a tracking issue for std::fs::MediaDirs and related functionality.
Sister feature tracking issue: std::fs::HomeDirs
MediaDirs exposes common user directory paths useful for storing media files.
Public API
// mod std::fs
pub struct MediaDirs { /* ... */ }
impl MediaDirs {
pub fn empty() -> Self;
pub fn desktop(&self) -> Option<&Path>;
pub fn documents(&self) -> Option<&Path>;
pub fn downloads(&self) -> Option<&Path>;
pub fn music(&self) -> Option<&Path>;
pub fn pictures(&self) -> Option<&Path>;
pub fn videos(&self) -> Option<&Path>;
pub fn set_desktop(&mut self, path: PathBuf) -> &mut Self;
pub fn set_documents(&mut self, path: PathBuf) -> &mut Self;
pub fn set_downloads(&mut self, path: PathBuf) -> &mut Self;
pub fn set_music(&mut self, path: PathBuf) -> &mut Self;
pub fn set_pictures(&mut self, path: PathBuf) -> &mut Self;
pub fn set_videos(&mut self, path: PathBuf) -> &mut Self;
}
// mod std::os::darwin::fs
impl MediaDirsExt for MediaDirs { /* ... */ }
pub impl(self) trait MediaDirsExt {
fn sysdir() -> io::Result<Self>;
}
// mod std::os::unix::fs
impl MediaDirsExt for MediaDirs { /* ... */ }
pub impl(self) trait MediaDirsExt {
fn xdg() -> io::Result<Self>;
fn templates(&self) -> Option<&Path>;
fn set_templates(&mut self, path: PathBuf) -> &mut Self;
}
// mod std::os::windows::fs
impl MediaDirsExt for MediaDirs { /* ... */ }
pub impl(self) trait MediaDirsExt {
fn known_folders() -> io::Result<Self>;
}
Steps / History
(Remember to update the S-tracking-* label when checking boxes.)
Unresolved Questions
Feature gate:
#![feature(fs_media_dirs)]This is a tracking issue for
std::fs::MediaDirsand related functionality.Sister feature tracking issue:
std::fs::HomeDirsMediaDirsexposes common user directory paths useful for storing media files.Public API
Steps / History
(Remember to update the
S-tracking-*label when checking boxes.)std::fs::UserDirsor similar libs-team#830std::fs::{Home|Media}Dirs#158936Unresolved Questions
fn take(&mut self) -> Selfmethod would be useful for builder-API style usage of theset_*methods. T-libs-api agreed we don't. I will defer to T-libs-api here, but want to log this note.MediaDirsExtprovide access to more of the PERUSERKNOWNFOLDERIDs?std::fs::HomeDirs(feature(fs_home_dirs)) #162082.Footnotes
https://std-dev-guide.rust-lang.org/feature-lifecycle/stabilization.html ↩