use super::{Command, Response};
use {Adapter, CommandType, ObjectId, ObjectType, Session, SessionError, WrapMessage};
pub fn export_wrapped<A: Adapter>(
session: &mut Session<A>,
wrap_key_id: ObjectId,
object_type: ObjectType,
object_id: ObjectId,
) -> Result<WrapMessage, SessionError> {
session
.send_command(ExportWrappedCommand {
wrap_key_id,
object_type,
object_id,
}).map(|response| response.0)
}
#[derive(Serialize, Deserialize, Debug)]
pub(crate) struct ExportWrappedCommand {
pub wrap_key_id: ObjectId,
pub object_type: ObjectType,
pub object_id: ObjectId,
}
impl Command for ExportWrappedCommand {
type ResponseType = ExportWrappedResponse;
}
#[derive(Serialize, Deserialize, Debug)]
pub(crate) struct ExportWrappedResponse(pub(crate) WrapMessage);
impl Response for ExportWrappedResponse {
const COMMAND_TYPE: CommandType = CommandType::ExportWrapped;
}