1use crate::{
8 auth::CredentialType,
9 types::{
10 common::UniqueBatchItemID,
11 request::{
12 Authentication, BatchCount, BatchItem, MaximumResponseSize, RequestHeader, RequestMessage, RequestPayload,
13 },
14 },
15};
16
17use kmip_ttlv::error::Result;
18
19pub fn to_vec(payload: RequestPayload, credential: Option<CredentialType>) -> Result<Vec<u8>> {
20 let operation = payload.operation();
21 let request = RequestMessage(
22 RequestHeader(
23 payload.protocol_version(),
24 Option::<MaximumResponseSize>::None,
25 credential.map(Authentication::build),
26 BatchCount(1),
27 ),
28 vec![BatchItem(operation, Option::<UniqueBatchItemID>::None, payload)],
29 );
30 kmip_ttlv::ser::to_vec(&request)
31}