vz 0.0.1

Vault Zipper: Encrypt and compress files with CLI efficiency
Documentation
use crate::ades::{Padding, des_enc, des_dec};
use ext::{no_std::{functions::ext::Curry, pipelines::pipe::Pipe}, val};
use std::fs;

pub fn des(r#in: String, out: String, des: String, encrypt: bool) {
    // Read file data & Write file as partially applied function:
    val!(
        data = fs::read(r#in).unwrap();
        write = |text| fs::write.curryr()(text)(out).unwrap());

    // Initialize the remaining arguments:
    des.padding(24).as_bytes().pipe(|key| {
        // Crypto as partially applied function:
        val!(
            des_enc = |data| des_enc(key)(data);
            des_dec = |data| des_dec(key)(data));

        // Encryption and decryption:
        match encrypt {
            true => des_enc(&data).pipe(write),
            false => des_dec(&data).pipe(write)
        }
    })
}