azure_storage_queues 0.2.0

Azure Queue Storage crate from the Azure SDK for Rust
Documentation
use azure_storage::core::clients::{AsStorageClient, StorageAccountClient, StorageClient};
use std::fmt::Debug;
use std::sync::Arc;

pub trait AsQueueServiceClient {
    fn as_queue_service_client(&self) -> Arc<QueueServiceClient>;
}

impl AsQueueServiceClient for Arc<StorageClient> {
    fn as_queue_service_client(&self) -> Arc<QueueServiceClient> {
        QueueServiceClient::new(self.clone())
    }
}

impl AsQueueServiceClient for Arc<StorageAccountClient> {
    fn as_queue_service_client(&self) -> Arc<QueueServiceClient> {
        self.as_storage_client().as_queue_service_client()
    }
}

#[derive(Debug, Clone)]
pub struct QueueServiceClient {
    storage_client: Arc<StorageClient>,
}

impl QueueServiceClient {
    pub(crate) fn new(storage_client: Arc<StorageClient>) -> Arc<Self> {
        Arc::new(Self { storage_client })
    }

    pub fn list_queues(&self) -> crate::requests::ListQueuesBuilder {
        crate::requests::ListQueuesBuilder::new(&self.storage_client)
    }

    pub fn get_queue_service_properties(
        &self,
    ) -> crate::requests::GetQueueServicePropertiesBuilder {
        crate::requests::GetQueueServicePropertiesBuilder::new(&self.storage_client)
    }

    pub fn set_queue_service_properties(
        &self,
    ) -> crate::requests::SetQueueServicePropertiesBuilder {
        crate::requests::SetQueueServicePropertiesBuilder::new(&self.storage_client)
    }

    pub fn get_queue_service_stats(&self) -> crate::requests::GetQueueServiceStatsBuilder {
        crate::requests::GetQueueServiceStatsBuilder::new(&self.storage_client)
    }
}