]> git.lizzy.rs Git - rust.git/commit
std: Stabilize a number of new fs features
authorAlex Crichton <alex@alexcrichton.com>
Wed, 27 May 2015 23:29:55 +0000 (16:29 -0700)
committerAlex Crichton <alex@alexcrichton.com>
Wed, 10 Jun 2015 00:44:13 +0000 (17:44 -0700)
commitec68c4a8351e65ec6e2d349aa103a457494ad814
treec2892ce2b7f8c03971305aa1b74794052455cea0
parent71a8d313c8351771dc5507dde14f654ca4f0707d
std: Stabilize a number of new fs features

This commit stabilizes the following APIs, slating them all to be cherry-picked
into the 1.1 release.

* fs::FileType (and transitively the derived trait implementations)
* fs::Metadata::file_type
* fs::FileType::is_dir
* fs::FileType::is_file
* fs::FileType::is_symlink
* fs::DirEntry::metadata
* fs::DirEntry::file_type
* fs::DirEntry::file_name
* fs::set_permissions
* fs::symlink_metadata
* os::raw::{self, *}
* os::{android, bitrig, linux, ...}::raw::{self, *}
* os::{android, bitrig, linux, ...}::fs::MetadataExt
* os::{android, bitrig, linux, ...}::fs::MetadataExt::as_raw_stat
* os::unix::fs::PermissionsExt
* os::unix::fs::PermissionsExt::mode
* os::unix::fs::PermissionsExt::set_mode
* os::unix::fs::PermissionsExt::from_mode
* os::unix::fs::OpenOptionsExt
* os::unix::fs::OpenOptionsExt::mode
* os::unix::fs::DirEntryExt
* os::unix::fs::DirEntryExt::ino
* os::windows::fs::MetadataExt
* os::windows::fs::MetadataExt::file_attributes
* os::windows::fs::MetadataExt::creation_time
* os::windows::fs::MetadataExt::last_access_time
* os::windows::fs::MetadataExt::last_write_time
* os::windows::fs::MetadataExt::file_size

The `os::unix::fs::Metadata` structure was also removed entirely, moving all of
its associated methods into the `os::unix::fs::MetadataExt` trait instead. The
methods are all marked as `#[stable]` still.

As some minor cleanup, some deprecated and unstable fs apis were also removed:

* File::path
* Metadata::accessed
* Metadata::modified

Features that were explicitly left unstable include:

* fs::WalkDir - the semantics of this were not considered in the recent fs
  expansion RFC.
* fs::DirBuilder - it's still not 100% clear if the naming is right here and if
  the set of functionality exposed is appropriate.
* fs::canonicalize - the implementation on Windows here is specifically in
  question as it always returns a verbatim path. Additionally the Unix
  implementation is susceptible to buffer overflows on long paths unfortunately.
* fs::PathExt - as this is just a convenience trait, it is not stabilized at
  this time.
* fs::set_file_times - this funciton is still waiting on a time abstraction.
27 files changed:
RELEASES.md
src/librustc_trans/lib.rs
src/libstd/fs.rs
src/libstd/os/android/mod.rs
src/libstd/os/android/raw.rs
src/libstd/os/bitrig/mod.rs
src/libstd/os/bitrig/raw.rs
src/libstd/os/dragonfly/mod.rs
src/libstd/os/dragonfly/raw.rs
src/libstd/os/freebsd/mod.rs
src/libstd/os/freebsd/raw.rs
src/libstd/os/ios/mod.rs
src/libstd/os/ios/raw.rs
src/libstd/os/linux/mod.rs
src/libstd/os/linux/raw.rs
src/libstd/os/macos/mod.rs
src/libstd/os/macos/raw.rs
src/libstd/os/nacl/mod.rs
src/libstd/os/nacl/raw.rs
src/libstd/os/openbsd/mod.rs
src/libstd/os/openbsd/raw.rs
src/libstd/os/raw.rs
src/libstd/sys/unix/ext/fs.rs
src/libstd/sys/unix/ext/raw.rs
src/libstd/sys/unix/fs.rs
src/libstd/sys/windows/ext/fs.rs
src/libstd/sys/windows/ext/raw.rs