use super::*;
impl Default for StaticFileResolver<'_> {
fn default() -> Self {
Self {
root: Path::new("."),
index: INDEX_DEFAULT,
}
}
}
impl StaticFileResolver<'_> {
pub fn resolve(&self, path: &str) -> Option<PathBuf> {
let mut file: PathBuf = self.get_root().to_path_buf();
if path.is_empty() {
file.push(self.get_index());
return Some(file);
}
for segment in path.split(SEPARATOR_SLASH) {
if segment.is_empty()
|| segment == SEGMENT_CURRENT
|| segment == SEGMENT_PARENT
|| segment.contains(SEPARATOR_BACKSLASH)
{
return None;
}
file.push(segment);
}
Some(file)
}
}