rsfn_file/encode/mod.rs
1pub mod plain;
2pub mod utf16be;
3
4/// Algoritmo de codificação e decodificação.
5pub trait Encode {
6 /// Codifica os dados.
7 fn encode(&self, data: &[u8]) -> Result<Vec<u8>, String>;
8
9 /// Decodifica os dados.
10 fn decode(&self, data: &[u8]) -> Result<Vec<u8>, String>;
11}
12
13/// Algoritmos de codificação de dados.
14#[derive(Debug, Default)]
15pub enum Encoders {
16 Plain,
17 #[default]
18 Utf16be,
19}
20
21impl Encoders {
22 pub fn init(&self) -> Box<dyn Encode> {
23 match self {
24 Self::Plain => Box::new(plain::Plain::default()),
25 Self::Utf16be => Box::new(utf16be::Utf16be::default()),
26 }
27 }
28}