Skip to main content

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}