Minor style changes

This commit is contained in:
João M. Bezerra 2021-04-06 20:14:33 -03:00
parent 575abeb454
commit 78d5f435ee
16 changed files with 54 additions and 64 deletions

View File

@ -7,8 +7,6 @@ use std::{
use oof::{arg_flag, flag};
pub const VERSION: &str = "0.1.5";
#[derive(PartialEq, Eq, Debug)]
pub enum Command {
/// Files to be compressed
@ -29,7 +27,6 @@ pub enum Command {
pub struct CommandInfo {
pub command: Command,
pub flags: oof::Flags,
// pub config: Config, // From .TOML, maybe, in the future
}
/// Calls parse_args_and_flags_from using std::env::args_os ( argv )
@ -41,7 +38,6 @@ pub fn parse_args() -> crate::Result<ParsedArgs> {
pub struct ParsedArgs {
pub command: Command,
pub flags: oof::Flags,
// pub program_called: OsString, // Useful?
}
fn canonicalize<'a, P>(path: P) -> crate::Result<PathBuf>
@ -54,7 +50,7 @@ where
if !path.as_ref().exists() {
Err(crate::Error::FileNotFound(PathBuf::from(path.as_ref())))
} else {
eprintln!("{} {}", "[ERROR]", io_err);
eprintln!("[ERROR] {}", io_err);
Err(crate::Error::IoError)
}
}

View File

@ -10,7 +10,7 @@ use crate::{
utils::{check_for_multiple_files, ensure_exists},
};
pub struct BzipCompressor {}
pub struct BzipCompressor;
impl BzipCompressor {
fn compress_files(files: Vec<PathBuf>, format: CompressionFormat) -> crate::Result<Vec<u8>> {

View File

@ -2,12 +2,6 @@ use std::path::PathBuf;
use crate::file::File;
// pub enum CompressionResult {
// ZipArchive(Vec<u8>),
// TarArchive(Vec<u8>),
// FileInMemory(Vec<u8>)
// }
pub enum Entry<'a> {
Files(Vec<PathBuf>),
InMemory(File<'a>),

View File

@ -10,7 +10,7 @@ use crate::{
utils::{check_for_multiple_files, ensure_exists},
};
pub struct GzipCompressor {}
pub struct GzipCompressor;
impl GzipCompressor {
pub fn compress_files(

View File

@ -10,7 +10,7 @@ use crate::{
utils::{check_for_multiple_files, ensure_exists},
};
pub struct LzmaCompressor {}
pub struct LzmaCompressor;
impl LzmaCompressor {
pub fn compress_files(

View File

@ -1,3 +1,4 @@
//! This module contains the Compressor trait and an implementor for each format.
mod bzip;
mod compressor;
mod gzip;

View File

@ -7,7 +7,7 @@ use walkdir::WalkDir;
use super::compressor::Entry;
use crate::{compressors::Compressor, file::File, utils};
pub struct TarCompressor {}
pub struct TarCompressor;
impl TarCompressor {
// TODO: implement this

View File

@ -8,7 +8,7 @@ use walkdir::WalkDir;
use super::compressor::Entry;
use crate::{compressors::Compressor, file::File, utils};
pub struct ZipCompressor {}
pub struct ZipCompressor;
impl ZipCompressor {
// TODO: this function does not seem to be working correctly ;/

View File

@ -1,3 +1,5 @@
//! This module contains the Decompressor trait and an implementor for each format.
mod decompressor;
mod tar;
mod to_memory;
@ -5,11 +7,6 @@ mod zip;
pub use decompressor::{DecompressionResult, Decompressor};
// These decompressors only decompress to memory,
// unlike {Tar, Zip}Decompressor which are capable of
// decompressing directly to storage
pub use self::{
tar::TarDecompressor,
to_memory::{BzipDecompressor, GzipDecompressor, LzmaDecompressor},
zip::ZipDecompressor,
};
pub use self::to_memory::{BzipDecompressor, GzipDecompressor, LzmaDecompressor};
// The .tar and .zip decompressors are capable of decompressing directly to storage
pub use self::{tar::TarDecompressor, zip::ZipDecompressor};

View File

@ -11,7 +11,7 @@ use super::decompressor::{DecompressionResult, Decompressor};
use crate::{bytes::Bytes, dialogs::Confirmation, file::File, utils};
#[derive(Debug)]
pub struct TarDecompressor {}
pub struct TarDecompressor;
impl TarDecompressor {
fn unpack_files(from: File, into: &Path, flags: &oof::Flags) -> crate::Result<Vec<PathBuf>> {

View File

@ -6,14 +6,12 @@ use std::{
use colored::Colorize;
use super::decompressor::{DecompressionResult, Decompressor};
use crate::bytes::Bytes;
use crate::utils;
use crate::{extension::CompressionFormat, file::File};
use crate::{bytes::Bytes, extension::CompressionFormat, file::File, utils};
struct DecompressorToMemory {}
pub struct GzipDecompressor {}
pub struct LzmaDecompressor {}
pub struct BzipDecompressor {}
struct DecompressorToMemory;
pub struct GzipDecompressor;
pub struct LzmaDecompressor;
pub struct BzipDecompressor;
fn get_decoder<'a>(
format: CompressionFormat,

View File

@ -19,7 +19,7 @@ fn __unix_set_permissions(file_path: &Path, file: &ZipFile) {
}
}
pub struct ZipDecompressor {}
pub struct ZipDecompressor;
impl ZipDecompressor {
fn check_for_comments(file: &ZipFile) {

View File

@ -8,7 +8,7 @@ use colored::Colorize;
use crate::{
bytes::Bytes,
cli::{Command, VERSION},
cli::Command,
compressors::{
BzipCompressor, Compressor, Entry, GzipCompressor, LzmaCompressor, TarCompressor,
ZipCompressor,
@ -23,7 +23,7 @@ use crate::{
utils,
};
pub struct Evaluator {}
pub struct Evaluator;
type BoxedCompressor = Box<dyn Compressor>;
type BoxedDecompressor = Box<dyn Decompressor>;
@ -48,11 +48,11 @@ impl Evaluator {
// .tar and .zip
let first_compressor: Option<Box<dyn Compressor>> = match extension.first_ext {
Some(ext) => match ext {
CompressionFormat::Tar => Some(Box::new(TarCompressor {})),
CompressionFormat::Zip => Some(Box::new(ZipCompressor {})),
CompressionFormat::Bzip => Some(Box::new(BzipCompressor {})),
CompressionFormat::Gzip => Some(Box::new(GzipCompressor {})),
CompressionFormat::Lzma => Some(Box::new(LzmaCompressor {})),
CompressionFormat::Tar => Some(Box::new(TarCompressor)),
CompressionFormat::Zip => Some(Box::new(ZipCompressor)),
CompressionFormat::Bzip => Some(Box::new(BzipCompressor)),
CompressionFormat::Gzip => Some(Box::new(GzipCompressor)),
CompressionFormat::Lzma => Some(Box::new(LzmaCompressor)),
},
None => None,
};
@ -60,11 +60,11 @@ impl Evaluator {
// Supported second compressors:
// any
let second_compressor: Box<dyn Compressor> = match extension.second_ext {
CompressionFormat::Tar => Box::new(TarCompressor {}),
CompressionFormat::Zip => Box::new(ZipCompressor {}),
CompressionFormat::Bzip => Box::new(BzipCompressor {}),
CompressionFormat::Gzip => Box::new(GzipCompressor {}),
CompressionFormat::Lzma => Box::new(LzmaCompressor {}),
CompressionFormat::Tar => Box::new(TarCompressor),
CompressionFormat::Zip => Box::new(ZipCompressor),
CompressionFormat::Bzip => Box::new(BzipCompressor),
CompressionFormat::Gzip => Box::new(GzipCompressor),
CompressionFormat::Lzma => Box::new(LzmaCompressor),
};
Ok((first_compressor, second_compressor))
@ -86,17 +86,17 @@ impl Evaluator {
};
let second_decompressor: Box<dyn Decompressor> = match extension.second_ext {
CompressionFormat::Tar => Box::new(TarDecompressor {}),
CompressionFormat::Zip => Box::new(ZipDecompressor {}),
CompressionFormat::Gzip => Box::new(GzipDecompressor {}),
CompressionFormat::Lzma => Box::new(LzmaDecompressor {}),
CompressionFormat::Bzip => Box::new(BzipDecompressor {}),
CompressionFormat::Tar => Box::new(TarDecompressor),
CompressionFormat::Zip => Box::new(ZipDecompressor),
CompressionFormat::Gzip => Box::new(GzipDecompressor),
CompressionFormat::Lzma => Box::new(LzmaDecompressor),
CompressionFormat::Bzip => Box::new(BzipDecompressor),
};
let first_decompressor: Option<Box<dyn Decompressor>> = match extension.first_ext {
Some(ext) => match ext {
CompressionFormat::Tar => Some(Box::new(TarDecompressor {})),
CompressionFormat::Zip => Some(Box::new(ZipDecompressor {})),
CompressionFormat::Tar => Some(Box::new(TarDecompressor)),
CompressionFormat::Zip => Some(Box::new(ZipDecompressor)),
_other => None,
},
None => None,
@ -282,7 +282,7 @@ impl Evaluator {
#[inline]
fn version_message() {
println!("ouch {}", VERSION);
println!("ouch {}", crate::VERSION);
}
fn help_message() {

View File

@ -86,16 +86,11 @@ impl Extension {
#[derive(Clone, PartialEq, Eq, Debug)]
/// Accepted extensions for input and output
pub enum CompressionFormat {
// .gz
Gzip,
// .bz
Bzip,
// .lzma
Lzma,
// .tar (technically not a compression extension, but will do for now)
Tar,
// .zip
Zip,
Gzip, // .gz
Bzip, // .bz
Lzma, // .lzma
Tar, // .tar (technically not a compression extension, but will do for now)
Zip, // .zip
}
fn extension_from_os_str(ext: &OsStr) -> Result<CompressionFormat, crate::Error> {

View File

@ -10,6 +10,8 @@ mod file;
mod test;
mod utils;
pub const VERSION: &str = "0.1.5";
use error::{Error, Result};
use evaluator::Evaluator;

View File

@ -41,7 +41,14 @@ pub(crate) fn check_for_multiple_files(
format: &CompressionFormat,
) -> crate::Result<()> {
if files.len() != 1 {
eprintln!("{}: cannot compress multiple files directly to {:#?}.\n Try using an intermediate archival method such as Tar.\n Example: filename.tar{}", "[ERROR]".red(), format, format);
eprintln!(
"{}: cannot compress multiple files directly to {:#?}.\n\
Try using an intermediate archival method such as Tar.\n\
Example: filename.tar{}",
"[ERROR]".red(),
format,
format
);
return Err(crate::Error::InvalidInput);
}