pub fn rot_letter(mode: Mode, letter: u8, rotation: u8) -> u8
Expand description
Transform single letter to ROT
The letter after rotated/shifted by n from its initial value
use nrot::{rot_letter, Mode};
let rotation = 13;
let input = b'a';
let result = b'n';
let encrypted = rot_letter(Mode::Encrypt, input, rotation);
assert_eq!(result, encrypted);
let input = b'n';
let result = b'a';
let encrypted = rot_letter(Mode::Decrypt, input, rotation);
assert_eq!(result, encrypted);
Examples found in repository?
examples/nrot.rs (line 10)
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
fn encrypt(input: String) {
let rotation = 13;
let input_length = input.len();
let input_bytes = input.as_bytes();
if input_length == 1 {
let byte_result = rot_letter(Mode::Encrypt, input_bytes[0], rotation);
println!("{}", String::from_utf8_lossy(&[byte_result]))
} else {
let bytes_result = rot(Mode::Encrypt, input_bytes, rotation);
println!("{}", String::from_utf8_lossy(&bytes_result))
};
}
fn decrypt(input: String) {
let rotation = 13;
let input_length = input.len();
let input_bytes = input.as_bytes();
if input_length == 1 {
let byte_result = rot_letter(Mode::Decrypt, input_bytes[0], rotation);
println!("{}", String::from_utf8_lossy(&[byte_result]))
} else {
let bytes_result = rot(Mode::Decrypt, input_bytes, rotation);
println!("{}", String::from_utf8_lossy(&bytes_result))
};
}