diff options
Diffstat (limited to 'cli/disk_cache.rs')
-rw-r--r-- | cli/disk_cache.rs | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/cli/disk_cache.rs b/cli/disk_cache.rs index 96a4ff41a..233990903 100644 --- a/cli/disk_cache.rs +++ b/cli/disk_cache.rs @@ -46,7 +46,7 @@ impl DiskCache { }) } - pub fn get_cache_filename(&self, url: &Url) -> PathBuf { + fn get_cache_filename(&self, url: &Url) -> Option<PathBuf> { let mut out = PathBuf::new(); let scheme = url.scheme(); @@ -105,31 +105,25 @@ impl DiskCache { out = out.join(remaining_components); } - scheme => { - unimplemented!( - "Don't know how to create cache name for scheme: {}\n Url: {}", - scheme, - url - ); - } + _ => return None, }; - out + Some(out) } pub fn get_cache_filename_with_extension( &self, url: &Url, extension: &str, - ) -> PathBuf { - let base = self.get_cache_filename(url); + ) -> Option<PathBuf> { + let base = self.get_cache_filename(url)?; match base.extension() { - None => base.with_extension(extension), + None => Some(base.with_extension(extension)), Some(ext) => { let original_extension = OsStr::to_str(ext).unwrap(); let final_extension = format!("{}.{}", original_extension, extension); - base.with_extension(final_extension) + Some(base.with_extension(final_extension)) } } } @@ -234,7 +228,7 @@ mod tests { for test_case in &test_cases { let cache_filename = cache.get_cache_filename(&Url::parse(test_case.0).unwrap()); - assert_eq!(cache_filename, PathBuf::from(test_case.1)); + assert_eq!(cache_filename, Some(PathBuf::from(test_case.1))); } } @@ -280,7 +274,7 @@ mod tests { &Url::parse(test_case.0).unwrap(), test_case.1 ), - PathBuf::from(test_case.2) + Some(PathBuf::from(test_case.2)) ) } } |