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}