pub struct MetadataCommand { /* private fields */ }Expand description
A builder for configuring 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 env_remove<K: Into<OsString>>(&mut self, key: K) -> &mut MetadataCommand
pub fn env_remove<K: Into<OsString>>(&mut self, key: K) -> &mut MetadataCommand
Arbitrary environment variables to remove 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:
- Removing inherited environment variables in build scripts that can cause an error
when calling
cargo metadata(for example, when cross-compiling).
MetadataCommand::new()
.env_remove("CARGO_ENCODED_RUSTFLAGS")
// ...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§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source. Read more