Struct cargo::sources::path::PathSource
source · pub struct PathSource<'cfg> { /* private fields */ }
Implementations
sourceimpl<'cfg> PathSource<'cfg>
impl<'cfg> PathSource<'cfg>
sourcepub fn new(path: &Path, id: &SourceId, config: &'cfg Config) -> PathSource<'cfg>
pub fn new(path: &Path, id: &SourceId, config: &'cfg Config) -> PathSource<'cfg>
Invoked with an absolute path to a directory that contains a Cargo.toml.
This source will only return the package at precisely the path
specified, and it will be an error if there’s not a package at path
.
sourcepub fn new_recursive(
root: &Path,
id: &SourceId,
config: &'cfg Config
) -> PathSource<'cfg>
pub fn new_recursive(
root: &Path,
id: &SourceId,
config: &'cfg Config
) -> PathSource<'cfg>
Creates a new source which is walked recursively to discover packages.
This is similar to the new
method except that instead of requiring a
valid package to be present at root
the folder is walked entirely to
crawl for packages.
Note that this should be used with care and likely shouldn’t be chosen by default!
pub fn preload_with(&mut self, pkg: Package)
pub fn root_package(&mut self) -> CargoResult<Package>
pub fn read_packages(&self) -> CargoResult<Vec<Package>>
sourcepub fn list_files(&self, pkg: &Package) -> CargoResult<Vec<PathBuf>>
pub fn list_files(&self, pkg: &Package) -> CargoResult<Vec<PathBuf>>
List all files relevant to building this package inside this source.
This function will use the appropriate methods to determine the
set of files underneath this source’s directory which are relevant for
building pkg
.
The basic assumption of this method is that all files in the directory are relevant for building this package, but it also contains logic to use other methods like .gitignore to filter the list of files.
Pattern matching strategy
Migrating from a glob-like pattern matching (using glob
crate) to a
gitignore-like pattern matching (using ignore
crate). The migration
stages are:
-
Only warn users about the future change iff their matching rules are affected. (CURRENT STAGE)
-
Switch to the new strategy and update documents. Still keep warning affected users.
-
Drop the old strategy and no more warnings.
See https://github.com/rust-lang/cargo/issues/4268 for more info.
pub fn last_modified_file(
&self,
pkg: &Package
) -> CargoResult<(FileTime, PathBuf)>
pub fn path(&self) -> &Path
Trait Implementations
sourceimpl<'cfg> Debug for PathSource<'cfg>
impl<'cfg> Debug for PathSource<'cfg>
sourceimpl<'cfg> Source for PathSource<'cfg>
impl<'cfg> Source for PathSource<'cfg>
sourcefn query(
&mut self,
dep: &Dependency,
f: &mut dyn FnMut(Summary)
) -> CargoResult<()>
fn query(
&mut self,
dep: &Dependency,
f: &mut dyn FnMut(Summary)
) -> CargoResult<()>
sourcefn fuzzy_query(
&mut self,
_dep: &Dependency,
f: &mut dyn FnMut(Summary)
) -> CargoResult<()>
fn fuzzy_query(
&mut self,
_dep: &Dependency,
f: &mut dyn FnMut(Summary)
) -> CargoResult<()>
close
means for it.
path/git sources may return all dependencies that are at that uri.
where as an Index source may return dependencies that have the same canonicalization. Read moresourcefn supports_checksums(&self) -> bool
fn supports_checksums(&self) -> bool
sourcefn requires_precise(&self) -> bool
fn requires_precise(&self) -> bool
precise
field in the source id listed. Read moresourcefn update(&mut self) -> CargoResult<()>
fn update(&mut self) -> CargoResult<()>
sourcefn download(&mut self, id: &PackageId) -> CargoResult<Package>
fn download(&mut self, id: &PackageId) -> CargoResult<Package>
sourcefn fingerprint(&self, pkg: &Package) -> CargoResult<String>
fn fingerprint(&self, pkg: &Package) -> CargoResult<String>
sourcefn replaced_source_id(&self) -> &SourceId
fn replaced_source_id(&self) -> &SourceId
SourceId
corresponding to this source