diff options
author | Kitson Kelly <me@kitsonkelly.com> | 2020-12-15 16:52:55 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-15 16:52:55 +1100 |
commit | 63a821b78b5a293c0eb5b3ecc18d67bde8331eda (patch) | |
tree | 4229af0ba8b9f56467f1355b0c53054b69039edf /cli/disk_cache.rs | |
parent | b6d5ae1ecd125ce8a14cddc877cb66dbcfc9bb04 (diff) |
fix(cli): make dynamic import errors catchable (#8750)
Fixes #6259
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)) ) } } |