#[cfg(not(feature = "parallel"))]
pub mod reader_no_parallel;
#[cfg(feature = "parallel")]
pub mod reader_parallel;
pub mod node;
pub mod reader;
use std::path::{Component, Path, PathBuf};
use crate::error::BackhandError;
pub fn normalize_squashfs_path(src: &Path) -> Result<PathBuf, BackhandError> {
let mut ret = PathBuf::from(Component::RootDir.as_os_str());
for component in src.components() {
match component {
Component::Prefix(..) => return Err(BackhandError::InvalidFilePath),
Component::RootDir => {}
Component::CurDir => {}
Component::ParentDir => {
ret.pop();
}
Component::Normal(c) => {
ret.push(c);
}
}
}
Ok(ret)
}