(root: &Path, abs_or_rel: &str)
| 117 | pub fn is_under_res(root: &Path, abs_or_rel: &str) -> bool { |
| 118 | let rel = normalize_rel(root, abs_or_rel); |
| 119 | rel == "res" || rel.starts_with("res/") |
| 120 | } |
| 121 | |
| 122 | pub fn abs_scene_to_res(root: &Path, abs_or_rel: &str) -> Option<String> { |
| 123 | let rel = normalize_rel(root, abs_or_rel); |
| 124 | let rel = rel.strip_prefix("res/")?; |
| 125 | rel.ends_with(".scn").then(|| format!("res://{rel}")) |
| 126 | } |
| 127 | |
| 128 | pub fn res_paths_from_sigs(sigs: &[FileSig]) -> Vec<String> { |
| 129 | sigs.iter() |
no test coverage detected