xtask/utils.rs
1use anyhow::Context;
2
3pub fn metadata() -> anyhow::Result<cargo_metadata::Metadata> {
4 cargo_metadata::MetadataCommand::new().exec().context("cargo metadata")
5}
6
7pub fn cargo_cmd() -> std::process::Command {
8 std::process::Command::new(std::env::var("CARGO").unwrap_or_else(|_| "cargo".to_string()))
9}
10
11pub fn comma_delimited(features: impl IntoIterator<Item = impl AsRef<str>>) -> String {
12 let mut string = String::new();
13 for feature in features {
14 if !string.is_empty() {
15 string.push(',');
16 }
17 string.push_str(feature.as_ref());
18 }
19 string
20}