xtask/
utils.rs

1use cargo_metadata::Metadata;
2
3pub fn get_exclude_for_backend<'a>(backend: &str, metadata: &'a Metadata) -> Vec<&'a str> {
4    let examples = metadata.workspace_root.join("examples");
5    let backend_examples = examples.join(backend);
6    metadata
7        .workspace_packages()
8        .into_iter()
9        .filter_map(move |p| {
10            if p.manifest_path.starts_with(&examples)
11                && !p.manifest_path.starts_with(&backend_examples)
12            {
13                Some(["--exclude", &p.name])
14            } else {
15                None
16            }
17        })
18        .flatten()
19        .collect()
20}