azure_storage_mirror/queue/responses/
get_queue_acl_response.rs1use crate::QueueStoredAccessPolicy;
2use azure_core::errors::AzureError;
3use azure_core::errors::PermissionError;
4use azure_core::headers::CommonStorageResponseHeaders;
5use azure_core::prelude::*;
6use bytes::Bytes;
7use http::response::Response;
8use std::convert::TryInto;
9
10#[derive(Debug, Clone)]
11pub struct GetQueueACLResponse {
12 pub common_storage_response_headers: CommonStorageResponseHeaders,
13 pub stored_access_policies: Vec<QueueStoredAccessPolicy>,
14}
15
16impl std::convert::TryFrom<&Response<Bytes>> for GetQueueACLResponse {
17 type Error = AzureError;
18
19 fn try_from(response: &Response<Bytes>) -> Result<Self, Self::Error> {
20 let headers = response.headers();
21 let body = response.body();
22
23 debug!("headers == {:?}", headers);
24
25 let a: Result<Vec<QueueStoredAccessPolicy>, PermissionError> =
26 StoredAccessPolicyList::from_xml(&std::str::from_utf8(body)?[3..])?
27 .stored_access
28 .into_iter()
29 .map(|sap| sap.try_into())
30 .collect();
31
32 Ok(GetQueueACLResponse {
33 common_storage_response_headers: headers.try_into()?,
34 stored_access_policies: a?,
35 })
36 }
37}