pub struct MetadataCommand { /* private fields */ }
Expand description
A builder for configurating cargo metadata
invocation.
Implementations§
Source§impl MetadataCommand
impl MetadataCommand
Sourcepub fn new() -> MetadataCommand
pub fn new() -> MetadataCommand
Creates a default cargo metadata
command, which will look for
Cargo.toml
in the ancestors of the current directory.
Sourcepub fn cargo_path(&mut self, path: impl Into<PathBuf>) -> &mut MetadataCommand
pub fn cargo_path(&mut self, path: impl Into<PathBuf>) -> &mut MetadataCommand
Path to cargo
executable. If not set, this will use the
the $CARGO
environment variable, and if that is not set, will
simply be cargo
.
Sourcepub fn manifest_path(
&mut self,
path: impl Into<PathBuf>,
) -> &mut MetadataCommand
pub fn manifest_path( &mut self, path: impl Into<PathBuf>, ) -> &mut MetadataCommand
Path to Cargo.toml
Sourcepub fn current_dir(&mut self, path: impl Into<PathBuf>) -> &mut MetadataCommand
pub fn current_dir(&mut self, path: impl Into<PathBuf>) -> &mut MetadataCommand
Current directory of the cargo metadata
process.
Sourcepub fn no_deps(&mut self) -> &mut MetadataCommand
pub fn no_deps(&mut self) -> &mut MetadataCommand
Output information only about workspace members and don’t fetch dependencies.
Sourcepub fn features(&mut self, features: CargoOpt) -> &mut MetadataCommand
pub fn features(&mut self, features: CargoOpt) -> &mut MetadataCommand
Which features to include.
Call this multiple times to specify advanced feature configurations:
MetadataCommand::new()
.features(CargoOpt::NoDefaultFeatures)
.features(CargoOpt::SomeFeatures(vec!["feat1".into(), "feat2".into()]))
.features(CargoOpt::SomeFeatures(vec!["feat3".into()]))
// ...
§Panics
cargo metadata
rejects multiple --no-default-features
flags. Similarly, the features()
method panics when specifying multiple CargoOpt::NoDefaultFeatures
:
MetadataCommand::new()
.features(CargoOpt::NoDefaultFeatures)
.features(CargoOpt::NoDefaultFeatures) // <-- panic!
// ...
The method also panics for multiple CargoOpt::AllFeatures
arguments:
MetadataCommand::new()
.features(CargoOpt::AllFeatures)
.features(CargoOpt::AllFeatures) // <-- panic!
// ...
Sourcepub fn other_options(
&mut self,
options: impl Into<Vec<String>>,
) -> &mut MetadataCommand
pub fn other_options( &mut self, options: impl Into<Vec<String>>, ) -> &mut MetadataCommand
Arbitrary command line flags to pass to cargo
. These will be added
to the end of the command line invocation.
Sourcepub fn env<K: Into<OsString>, V: Into<OsString>>(
&mut self,
key: K,
val: V,
) -> &mut MetadataCommand
pub fn env<K: Into<OsString>, V: Into<OsString>>( &mut self, key: K, val: V, ) -> &mut MetadataCommand
Arbitrary environment variables to set when running cargo
. These will be merged into
the calling environment, overriding any which clash.
Some examples of when you may want to use this:
- Setting cargo config values without needing a .cargo/config.toml file, e.g. to set
CARGO_NET_GIT_FETCH_WITH_CLI=true
- To specify a custom path to RUSTC if your rust toolchain components aren’t laid out in the way cargo expects by default.
MetadataCommand::new()
.env("CARGO_NET_GIT_FETCH_WITH_CLI", "true")
.env("RUSTC", "/path/to/rustc")
// ...
Sourcepub fn verbose(&mut self, verbose: bool) -> &mut MetadataCommand
pub fn verbose(&mut self, verbose: bool) -> &mut MetadataCommand
Set whether to show stderr
Sourcepub fn cargo_command(&self) -> Command
pub fn cargo_command(&self) -> Command
Builds a command for cargo metadata
. This is the first
part of the work of exec
.
Trait Implementations§
Source§impl Clone for MetadataCommand
impl Clone for MetadataCommand
Source§fn clone(&self) -> MetadataCommand
fn clone(&self) -> MetadataCommand
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for MetadataCommand
impl Debug for MetadataCommand
Source§impl Default for MetadataCommand
impl Default for MetadataCommand
Source§fn default() -> MetadataCommand
fn default() -> MetadataCommand
Auto Trait Implementations§
impl Freeze for MetadataCommand
impl RefUnwindSafe for MetadataCommand
impl Send for MetadataCommand
impl Sync for MetadataCommand
impl Unpin for MetadataCommand
impl UnwindSafe for MetadataCommand
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)