INNER CODE UNIT · Rust
Ok
XayahSuSuSu/Android-DataBackup · source-next/native/src/main/jni/rustic/src/mapped_source.rs:105
if let Ok(relative) = nested.strip_prefix(destination) {
if relative.as_os_str().is_empty() || !source.symlink_metadata()?.is_dir() {
return Err("Source mappings overlap at a snapshot destination".into());
}
let target = source.join(relative);
let mut physical = source.clone();
for component in relative.components() {
physical.push(component);
// An excluded subtree contributes no nodes to this destination.
if exclusions[index]
.iter()
.any(|path| physical.starts_with(path))
{
break;
}
match physical.symlink_metadata() {
Ok(metadata) if !metadata.is_dir() || physical == target => {
return Err(