rsfn_file/encode/
plain.rs1use crate::encode::Encode;
2
3#[derive(Debug)]
5pub struct Plain {}
6
7impl Plain {
8 pub fn new() -> Self {
10 Self {}
11 }
12}
13
14impl Default for Plain {
15 fn default() -> Self {
16 Self::new()
17 }
18}
19
20impl Encode for Plain {
21 fn encode(&self, data: &[u8]) -> Result<Vec<u8>, String> {
22 Ok(data.into())
23 }
24
25 fn decode(&self, data: &[u8]) -> Result<Vec<u8>, String> {
26 Ok(data.into())
27 }
28}
29
30#[cfg(test)]
31mod tests {
32 use rand::RngExt;
33
34 use super::*;
35
36 #[test]
37 fn encode() {
38 let mut rng = rand::rng();
39 let data: Vec<_> = (0..256).map(|_| rng.random()).collect();
40
41 let sut = Plain::default();
42 let returned = sut.encode(&data).unwrap();
43
44 assert_eq!(returned, data);
45 }
46
47 #[test]
48 fn decode() {
49 let mut rng = rand::rng();
50 let data: Vec<_> = (0..256).map(|_| rng.random()).collect();
51
52 let sut = Plain::default();
53 let returned = sut.decode(&data).unwrap();
54
55 assert_eq!(returned, data);
56 }
57}