diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2020-01-11 04:02:30 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-01-11 04:02:30 +0100 |
| commit | c960c3e05742f5b4a727b1a9c4d7da185d72ca8c (patch) | |
| tree | 3c537ec496b7efd89e33ec3b0158d7a48354e336 /src/libstd | |
| parent | cacda2d7a0d43c6038329e980b8ab339dd0ab9af (diff) | |
| parent | 5f3f1a3606a5f13177a1634ba80d6386e5132518 (diff) | |
| download | rust-c960c3e05742f5b4a727b1a9c4d7da185d72ca8c.tar.gz rust-c960c3e05742f5b4a727b1a9c4d7da185d72ca8c.zip | |
Rollup merge of #68102 - lzutao:inline, r=alexcrichton
Inline some conversion methods around OsStr
Diff on the assembly of this snippet before and after this PR: https://www.diffchecker.com/NeGMjaJ2
```rust
use std::env;
use std::io;
use std::path::{Path, PathBuf};
pub fn cargo_home_with_cwd(cwd: &Path) -> io::Result<PathBuf> {
match env::var_os("CARGO_HOME").filter(|h| !h.is_empty()) {
Some(home) => {
let home = PathBuf::from(home);
if home.is_absolute() {
Ok(home)
} else {
Ok(cwd.join(&home))
}
}
_ => env::home_dir()
.map(|p| p.join(".cargo"))
.ok_or_else(|| io::Error::new(io::ErrorKind::Other, "could not find cargo home dir")),
}
}
```
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/error.rs | 2 | ||||
| -rw-r--r-- | src/libstd/ffi/os_str.rs | 2 | ||||
| -rw-r--r-- | src/libstd/path.rs | 5 | ||||
| -rw-r--r-- | src/libstd/sys_common/os_str_bytes.rs | 1 |
4 files changed, 9 insertions, 1 deletions
diff --git a/src/libstd/error.rs b/src/libstd/error.rs index 1407fe27715..b480581e21b 100644 --- a/src/libstd/error.rs +++ b/src/libstd/error.rs @@ -250,6 +250,7 @@ impl From<String> for Box<dyn Error + Send + Sync> { /// assert!( /// mem::size_of::<Box<dyn Error + Send + Sync>>() == mem::size_of_val(&a_boxed_error)) /// ``` + #[inline] fn from(err: String) -> Box<dyn Error + Send + Sync> { struct StringError(String); @@ -317,6 +318,7 @@ impl<'a> From<&str> for Box<dyn Error + Send + Sync + 'a> { /// assert!( /// mem::size_of::<Box<dyn Error + Send + Sync>>() == mem::size_of_val(&a_boxed_error)) /// ``` + #[inline] fn from(err: &str) -> Box<dyn Error + Send + Sync + 'a> { From::from(String::from(err)) } diff --git a/src/libstd/ffi/os_str.rs b/src/libstd/ffi/os_str.rs index 4c308327b83..77da97219b1 100644 --- a/src/libstd/ffi/os_str.rs +++ b/src/libstd/ffi/os_str.rs @@ -615,6 +615,7 @@ impl OsStr { /// assert!(!os_str.is_empty()); /// ``` #[stable(feature = "osstring_simple_functions", since = "1.9.0")] + #[inline] pub fn is_empty(&self) -> bool { self.inner.inner.is_empty() } @@ -965,6 +966,7 @@ impl AsRef<OsStr> for OsStr { #[stable(feature = "rust1", since = "1.0.0")] impl AsRef<OsStr> for OsString { + #[inline] fn as_ref(&self) -> &OsStr { self } diff --git a/src/libstd/path.rs b/src/libstd/path.rs index fbbdc1ddac2..a703cb748e0 100644 --- a/src/libstd/path.rs +++ b/src/libstd/path.rs @@ -1475,6 +1475,7 @@ impl From<OsString> for PathBuf { /// Converts a `OsString` into a `PathBuf` /// /// This conversion does not allocate or copy memory. + #[inline] fn from(s: OsString) -> PathBuf { PathBuf { inner: s } } @@ -1535,7 +1536,7 @@ impl fmt::Debug for PathBuf { #[stable(feature = "rust1", since = "1.0.0")] impl ops::Deref for PathBuf { type Target = Path; - + #[inline] fn deref(&self) -> &Path { Path::new(&self.inner) } @@ -2655,6 +2656,7 @@ impl AsRef<Path> for OsString { #[stable(feature = "rust1", since = "1.0.0")] impl AsRef<Path> for str { + #[inline] fn as_ref(&self) -> &Path { Path::new(self) } @@ -2669,6 +2671,7 @@ impl AsRef<Path> for String { #[stable(feature = "rust1", since = "1.0.0")] impl AsRef<Path> for PathBuf { + #[inline] fn as_ref(&self) -> &Path { self } diff --git a/src/libstd/sys_common/os_str_bytes.rs b/src/libstd/sys_common/os_str_bytes.rs index eb8a881ec88..e965ea79aa0 100644 --- a/src/libstd/sys_common/os_str_bytes.rs +++ b/src/libstd/sys_common/os_str_bytes.rs @@ -104,6 +104,7 @@ impl Buf { self.inner.shrink_to(min_capacity) } + #[inline] pub fn as_slice(&self) -> &Slice { unsafe { mem::transmute(&*self.inner) } } |
