use crate::TinkError;
#[derive(Default)]
pub struct MemReaderWriter {
pub keyset: Option<tink_proto::Keyset>,
pub encrypted_keyset: Option<tink_proto::EncryptedKeyset>,
}
impl super::Reader for MemReaderWriter {
fn read(&mut self) -> Result<tink_proto::Keyset, TinkError> {
match &self.keyset {
Some(keyset) => Ok(keyset.clone()),
None => Err("no keyset available".into()),
}
}
fn read_encrypted(&mut self) -> Result<tink_proto::EncryptedKeyset, TinkError> {
match &self.encrypted_keyset {
Some(keyset) => Ok(keyset.clone()),
None => Err("no keyset available".into()),
}
}
}
impl super::Writer for MemReaderWriter {
fn write(&mut self, keyset: &tink_proto::Keyset) -> Result<(), TinkError> {
self.keyset = Some(keyset.clone());
Ok(())
}
fn write_encrypted(&mut self, keyset: &tink_proto::EncryptedKeyset) -> Result<(), TinkError> {
self.encrypted_keyset = Some(keyset.clone());
Ok(())
}
}