#![allow(unknown_lints, renamed_and_removed_lints, too_many_arguments)]
mod objects;
mod payload;
pub(crate) use self::{objects::Objects, payload::Payload};
use crate::{object, Algorithm};
use serde::{Deserialize, Serialize};
const WRAPPED_DATA_MAC_SIZE: usize = 16;
const DEFAULT_AUTHENTICATION_KEY_LABEL: &str = "DEFAULT AUTHKEY CHANGE THIS ASAP";
#[derive(Debug)]
pub(crate) struct Object {
pub object_info: object::Info,
pub payload: Payload,
}
impl Object {
pub fn algorithm(&self) -> Algorithm {
self.payload.algorithm()
}
pub fn info(&self) -> &object::Info {
&self.object_info
}
}
#[derive(Serialize, Deserialize, Debug)]
pub(crate) struct WrappedObject {
pub object_info: object::Info,
pub data: Vec<u8>,
}
impl<'a> From<&'a Object> for WrappedObject {
fn from(obj: &'a Object) -> Self {
Self {
object_info: obj.object_info.clone(),
data: obj.payload.as_ref().into(),
}
}
}
impl<'a> From<&'a Object> for object::Entry {
fn from(obj: &'a Object) -> Self {
object::Entry {
object_id: obj.object_info.object_id,
object_type: obj.object_info.object_type,
sequence: obj.object_info.sequence,
}
}
}