#[stable(feature = "path_buf_from_box", since = "1.18.0")]
impl From<Box<Path>> for PathBuf {
+ /// Converts a `Box<Path>` into a `PathBuf`.
+ /// This conversion does not allocate memory
fn from(boxed: Box<Path>) -> PathBuf {
boxed.into_path_buf()
}
#[stable(feature = "box_from_path_buf", since = "1.20.0")]
impl From<PathBuf> for Box<Path> {
+ /// Converts a `PathBuf` into a `Box<Path>`.
+ /// This conversion does not allocate memory
fn from(p: PathBuf) -> Box<Path> {
p.into_boxed_path()
}
#[stable(feature = "rust1", since = "1.0.0")]
impl From<OsString> for PathBuf {
+ /// Converts a `OsString` into a `PathBuf`.
+ /// This conversion copies the data.
+ /// This conversion does allocate memory.
fn from(s: OsString) -> PathBuf {
PathBuf { inner: s }
}
#[stable(feature = "from_path_buf_for_os_string", since = "1.14.0")]
impl From<PathBuf> for OsString {
+ /// Converts a `PathBuf` into a `OsString`.
+ /// This conversion copies the data.
+ /// This conversion does allocate memory.
fn from(path_buf : PathBuf) -> OsString {
path_buf.inner
}
#[stable(feature = "rust1", since = "1.0.0")]
impl From<String> for PathBuf {
+ /// Converts a `String` into a `PathBuf`.
+ /// This conversion does not allocate memory
fn from(s: String) -> PathBuf {
PathBuf::from(OsString::from(s))
}
#[stable(feature = "shared_from_slice2", since = "1.24.0")]
impl From<PathBuf> for Arc<Path> {
+ /// Converts a `PathBuf` into a `Arc<Path>`.
+ /// This conversion happens in place.
+ /// This conversion does not allocate memory.
+ /// This function is unsafe. Data can't be moved from this reference.
#[inline]
fn from(s: PathBuf) -> Arc<Path> {
let arc: Arc<OsStr> = Arc::from(s.into_os_string());
#[stable(feature = "shared_from_slice2", since = "1.24.0")]
impl<'a> From<&'a Path> for Arc<Path> {
+ /// Converts a `PathBuf` into a `Arc<Path>`.
+ /// This conversion happens in place.
+ /// This conversion does not allocate memory.
+ /// This function is unsafe. Data can't be moved from this reference.
#[inline]
fn from(s: &Path) -> Arc<Path> {
let arc: Arc<OsStr> = Arc::from(s.as_os_str());
#[stable(feature = "shared_from_slice2", since = "1.24.0")]
impl From<PathBuf> for Rc<Path> {
+ /// Converts a `PathBuf` into a `Rc<Path>`.
+ /// This conversion happens in place.
+ /// This conversion does not allocate memory.
+ /// This function is unsafe. Data can't be moved from this reference.
#[inline]
fn from(s: PathBuf) -> Rc<Path> {
let rc: Rc<OsStr> = Rc::from(s.into_os_string());