refac: check_invalid_compression_with_non_archive_format

This commit is contained in:
João M. Bezerra 2023-02-03 02:13:00 -03:00
parent 1f4eba2bcb
commit 99d9c09fb7

View File

@ -169,6 +169,8 @@ pub fn check_first_format_when_compressing<'a>(formats: &'a [Extension], output_
}
/// Check if compression is invalid because an archive format is necessary.
///
/// Non-archive formats don't support multiple file compression or folder compression.
pub fn check_invalid_compression_with_non_archive_format(
formats: &[Extension],
output_path: &Path,
@ -180,8 +182,12 @@ pub fn check_invalid_compression_with_non_archive_format(
let is_some_input_a_folder = files.iter().any(|path| path.is_dir());
let is_multiple_inputs = files.len() > 1;
// If first format is not archive, can't compress folder, or multiple files
if !first_format.is_archive() && (is_some_input_a_folder || is_multiple_inputs) {
// If format is archive, nothing to check
// If there's no folder or multiple inputs, non-archive formats can handle it
if first_format.is_archive() || !is_some_input_a_folder && !is_multiple_inputs {
return Ok(());
}
let first_detail_message = if is_multiple_inputs {
"You are trying to compress multiple files."
} else {
@ -219,7 +225,5 @@ pub fn check_invalid_compression_with_non_archive_format(
.hint(from_hint)
.hint(to_hint);
return Err(error.into());
}
Ok(())
Err(error.into())
}