use speedy::{Context, Readable, Writable};
#[derive(Debug, PartialEq, Eq, Clone)]
pub struct CryptoFooter {
pub data: Vec<u8>,
}
impl From<Vec<u8>> for CryptoFooter {
fn from(data: Vec<u8>) -> Self {
Self { data }
}
}
impl From<CryptoFooter> for Vec<u8> {
fn from(CryptoFooter { data }: CryptoFooter) -> Self {
data
}
}
impl<C: Context> Writable<C> for CryptoFooter {
fn write_to<T: ?Sized + speedy::Writer<C>>(
&self,
writer: &mut T,
) -> Result<(), <C as Context>::Error> {
writer.write_bytes(&self.data)
}
}
impl<'a, C: Context> Readable<'a, C> for CryptoFooter {
fn read_from<R: speedy::Reader<'a, C>>(reader: &mut R) -> Result<Self, <C as Context>::Error> {
reader.read_vec_until_eof().map(Self::from)
}
}