azure_storage_blobs/clients/
container_lease_client.rs

1use crate::{container::operations::*, prelude::*};
2use azure_core::{headers::Headers, prelude::*, Body, Method, Request, Response, Url};
3
4#[derive(Debug, Clone)]
5pub struct ContainerLeaseClient {
6    container_client: ContainerClient,
7    lease_id: LeaseId,
8}
9
10impl ContainerLeaseClient {
11    pub(crate) fn new(container_client: ContainerClient, lease_id: LeaseId) -> Self {
12        Self {
13            container_client,
14            lease_id,
15        }
16    }
17
18    pub fn release(&self) -> ReleaseLeaseBuilder {
19        ReleaseLeaseBuilder::new(self.clone())
20    }
21
22    pub fn renew(&self) -> RenewLeaseBuilder {
23        RenewLeaseBuilder::new(self.clone())
24    }
25
26    pub fn lease_id(&self) -> LeaseId {
27        self.lease_id
28    }
29
30    pub fn container_client(&self) -> &ContainerClient {
31        &self.container_client
32    }
33
34    pub(crate) fn url(&self) -> azure_core::Result<Url> {
35        self.container_client.url()
36    }
37
38    pub(crate) fn finalize_request(
39        url: Url,
40        method: Method,
41        headers: Headers,
42        request_body: Option<Body>,
43    ) -> azure_core::Result<Request> {
44        ContainerClient::finalize_request(url, method, headers, request_body)
45    }
46
47    pub(crate) async fn send(
48        &self,
49        context: &mut Context,
50        request: &mut Request,
51    ) -> azure_core::Result<Response> {
52        self.container_client.send(context, request).await
53    }
54}