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}