pub trait EncryptionModule {
// Required methods
fn wrap_istream(&self, istream: Box<dyn IStream>) -> Box<dyn IStream>;
fn wrap_ostream(&self, ostream: Box<dyn OStream>) -> Box<dyn OStream>;
fn encode_data(
&self,
input: &[u8]
) -> Result<Vec<u8>, EncryptionModuleError>;
fn encode_path(
&self,
input: &Path
) -> Result<PathBuf, EncryptionModuleError>;
fn decode_data(
&self,
input: &[u8]
) -> Result<Vec<u8>, EncryptionModuleError>;
fn decode_path(
&self,
input: &Path
) -> Result<PathBuf, EncryptionModuleError>;
fn decode_plain(
&self,
input: String
) -> Result<String, EncryptionModuleError>;
}