azure_storage_blobs/container/operations/
create.rs

1use crate::prelude::*;
2use azure_core::Method;
3use azure_core::{headers::AsHeaders, headers::Headers, prelude::*};
4
5operation! {
6    Create,
7    client: ContainerClient,
8    ?public_access: PublicAccess,
9    ?metadata: Metadata
10}
11
12impl CreateBuilder {
13    pub fn into_future(mut self) -> Create {
14        Box::pin(async move {
15            let mut url = self.client.url()?;
16
17            url.query_pairs_mut().append_pair("restype", "container");
18
19            let mut headers = Headers::new();
20            if let Some(metadata) = &self.metadata {
21                for m in metadata.iter() {
22                    headers.add(m);
23                }
24            }
25
26            for (name, value) in self
27                .public_access
28                .unwrap_or(PublicAccess::None)
29                .as_headers()
30            {
31                headers.insert(name, value);
32            }
33
34            let mut request = ContainerClient::finalize_request(url, Method::Put, headers, None)?;
35
36            let _response = self.client.send(&mut self.context, &mut request).await?;
37
38            // TODO: Capture and return the response headers
39            Ok(())
40        })
41    }
42}
43
44type CreateResponse = ();