tla 0.1.12

A CLI tool for compressing and encrypting a file or a directory. (tar, lzma, aes & des)
Documentation
use aoko::standard::parallelisms::par_vec_ext::ParMutExt;

pub trait Caesar {
    fn cs_enc(self, n: u8) -> Self;
    fn cs_dec(self, n: u8) -> Self;
}

impl Caesar for Vec<u8> {
    fn cs_enc(self, n: u8) -> Self {
        self.on_each(|u8| *u8 = u8.wrapping_add(n))
    }
    fn cs_dec(self, n: u8) -> Self {
        self.on_each(|u8| *u8 = u8.wrapping_sub(n))
    }
}

#[test]
fn caesar_encrypt() {
    assert_eq!(vec![4, 5, 6], vec![1, 2, 3].cs_enc(3));
    assert_eq!(vec![0, 1, 2], vec![253, 254, 255].cs_enc(3));
}

#[test]
fn caesar_decrypt() {
    assert_eq!(vec![1, 2, 3], vec![4, 5, 6].cs_dec(3));
    assert_eq!(vec![253, 254, 255], vec![0, 1, 2].cs_dec(3));
}