Struct rustc_session::search_paths::SearchPathFile
source · [−]Expand description
The obvious implementation of SearchPath::files is a Vec<PathBuf>. But
it is searched repeatedly by find_library_crate, and the searches involve
checking the prefix and suffix of the filename of each PathBuf. This is
doable, but very slow, because it involves calls to file_name and
extension that are themselves slow.
This type augments the PathBuf with an String containing the
PathBuf’s filename. The prefix and suffix checking is much faster on the
String than the PathBuf. (The filename must be valid UTF-8. If it’s
not, the entry should be skipped, because all Rust output files are valid
UTF-8, and so a non-UTF-8 filename couldn’t be one we’re looking for.)
Fields
path: PathBuffile_name_str: StringTrait Implementations
sourceimpl Clone for SearchPathFile
impl Clone for SearchPathFile
sourcefn clone(&self) -> SearchPathFile
fn clone(&self) -> SearchPathFile
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
Auto Trait Implementations
impl RefUnwindSafe for SearchPathFile
impl Send for SearchPathFile
impl Sync for SearchPathFile
impl Unpin for SearchPathFile
impl UnwindSafe for SearchPathFile
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 48 bytes