Skip to content

Commit 02b9624

Browse files
authored
Create azure_storage_queues crate from azure_storage::queue (#493)
1 parent 60a6f39 commit 02b9624

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+204
-132
lines changed

sdk/storage/Cargo.toml

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -131,23 +131,5 @@ required-features=["blob"]
131131
name="stream_blob_01"
132132
required-features=["blob"]
133133
[[example]]
134-
name="list_queues"
135-
required-features=["queue"]
136-
[[example]]
137-
name="queue_create"
138-
required-features=["queue"]
139-
[[example]]
140-
name="get_messages"
141-
required-features=["queue"]
142-
[[example]]
143-
name="peek_messages"
144-
required-features=["queue"]
145-
[[example]]
146-
name="delete_message"
147-
required-features=["queue"]
148-
[[example]]
149-
name="put_message"
150-
required-features=["queue"]
151-
[[example]]
152134
name="data_lake_00"
153135
required-features=["data_lake"]

sdk/storage/src/core/clients/storage_client.rs

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ impl StorageClient {
2727
}
2828

2929
#[allow(dead_code)]
30-
pub(crate) fn storage_account_client(&self) -> &StorageAccountClient {
30+
pub fn storage_account_client(&self) -> &StorageAccountClient {
3131
self.storage_account_client.as_ref()
3232
}
3333

@@ -64,7 +64,7 @@ impl StorageClient {
6464
)
6565
}
6666

67-
pub(crate) fn queue_url_with_segments<'a, I>(
67+
pub fn queue_url_with_segments<'a, I>(
6868
&'a self,
6969
segments: I,
7070
) -> Result<url::Url, url::ParseError>
@@ -93,32 +93,8 @@ impl StorageClient {
9393
crate::container::requests::ListContainersBuilder::new(self)
9494
}
9595

96-
#[cfg(feature = "queue")]
97-
pub fn list_queues(&self) -> crate::queue::requests::ListQueuesBuilder {
98-
crate::queue::requests::ListQueuesBuilder::new(self)
99-
}
100-
101-
#[cfg(feature = "queue")]
102-
pub fn get_queue_service_properties(
103-
&self,
104-
) -> crate::queue::requests::GetQueueServicePropertiesBuilder {
105-
crate::queue::requests::GetQueueServicePropertiesBuilder::new(self)
106-
}
107-
108-
#[cfg(feature = "queue")]
109-
pub fn set_queue_service_properties(
110-
&self,
111-
) -> crate::queue::requests::SetQueueServicePropertiesBuilder {
112-
crate::queue::requests::SetQueueServicePropertiesBuilder::new(self)
113-
}
114-
115-
#[cfg(feature = "queue")]
116-
pub fn get_queue_service_stats(&self) -> crate::queue::requests::GetQueueServiceStatsBuilder {
117-
crate::queue::requests::GetQueueServiceStatsBuilder::new(self)
118-
}
119-
12096
#[allow(dead_code)]
121-
pub(crate) fn prepare_request(
97+
pub fn prepare_request(
12298
&self,
12399
url: &str,
124100
method: &Method,

sdk/storage/src/core/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ pub use copy_progress::CopyProgress;
1717
pub(crate) mod parsing_xml;
1818
mod stored_access_policy;
1919
pub use errors::{Error, Result};
20-
pub(crate) mod xml;
20+
pub mod xml;
2121

2222
#[derive(Debug, Clone, Eq, PartialEq, Copy, Serialize, Deserialize)]
2323
pub struct Yes;

sdk/storage/src/lib.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@ pub mod blob;
2020
pub mod core;
2121
#[cfg(feature = "data_lake")]
2222
pub mod data_lake;
23-
#[cfg(feature = "queue")]
24-
pub mod queue;
2523
#[cfg(feature = "table")]
2624
pub mod table;
2725

@@ -32,7 +30,5 @@ pub use account::*;
3230
pub use blob::*;
3331
#[cfg(feature = "data_lake")]
3432
pub use data_lake::*;
35-
#[cfg(feature = "queue")]
36-
pub use queue::*;
3733
#[cfg(feature = "table")]
3834
pub use table::*;

sdk/storage/src/queue/prelude.rs

Lines changed: 0 additions & 5 deletions
This file was deleted.

sdk/storage_queues/Cargo.toml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
[package]
2+
name = "azure_storage_queues"
3+
version = "0.1.0"
4+
description = "Rust wrappers around Microsoft Azure Storage Queues REST APIs"
5+
readme = "README.md"
6+
authors = ["Microsoft Corp."]
7+
license = "MIT"
8+
repository = "https://github.com/azure/azure-sdk-for-rust"
9+
homepage = "https://github.com/azure/azure-sdk-for-rust"
10+
documentation = "https://docs.rs/azure_storage_queues"
11+
keywords = ["sdk", "azure", "rest", "iot", "cloud"]
12+
categories = ["api-bindings"]
13+
edition = "2018"
14+
15+
[dependencies]
16+
azure_core = { path = "../core", version = "0.1.0" }
17+
azure_storage = { path = "../storage", version = "0.1.0" }
18+
bytes = "1.0"
19+
chrono = { version = "0.4", features = ["serde"] }
20+
futures = "0.3"
21+
http = "0.2"
22+
log = "0.4"
23+
serde = { version = "1.0" }
24+
serde_derive = "1.0"
25+
serde_json = "1.0"
26+
serde-xml-rs = "0.4"
27+
uuid = { version = "0.8", features = ["v4"] }
28+
url = "2.2"
29+
30+
[dev-dependencies]
31+
tokio = { version = "1.0", features = ["full"] }

sdk/storage_queues/README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Azure SDK for Rust - Azure Messaging Queues
2+
3+
Azure Messaging Queues crate for the unofficial Microsoft Azure SDK for Rust. This crate is part of a collection of crates: for more information please refer to [https://github.com/azure/azure-sdk-for-rust](https://github.com/azure/azure-sdk-for-rust).
4+
5+
## Usage
6+
7+
To set this crate as a dependency, add this to your Cargo.toml
8+
9+
```toml
10+
[dependencies]
11+
azure_messaging_queues = { version = "0.1.0", git = "https://github.com/Azure/azure-sdk-for-rust" }
12+
```

sdk/storage/examples/delete_message.rs renamed to sdk/storage_queues/examples/delete_message.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
extern crate log;
33
use azure_core::prelude::*;
44
use azure_storage::core::prelude::*;
5-
use azure_storage::queue::prelude::*;
5+
use azure_storage_queues::prelude::*;
66
use std::error::Error;
77
use std::time::Duration;
88

@@ -20,9 +20,10 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
2020

2121
let http_client = new_http_client();
2222

23-
let queue = StorageAccountClient::new_access_key(http_client.clone(), &account, &master_key)
24-
.as_storage_client()
25-
.as_queue_client(queue_name);
23+
let storage_account =
24+
StorageAccountClient::new_access_key(http_client.clone(), &account, &master_key);
25+
26+
let queue = storage_account.as_queue_client(queue_name);
2627

2728
trace!("getting messages");
2829

sdk/storage/examples/get_messages.rs renamed to sdk/storage_queues/examples/get_messages.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
extern crate log;
33
use azure_core::prelude::*;
44
use azure_storage::core::prelude::*;
5-
use azure_storage::queue::prelude::*;
5+
use azure_storage_queues::prelude::*;
66
use std::error::Error;
77
use std::time::Duration;
88

@@ -20,9 +20,10 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
2020

2121
let http_client = new_http_client();
2222

23-
let queue = StorageAccountClient::new_access_key(http_client.clone(), &account, &master_key)
24-
.as_storage_client()
25-
.as_queue_client(queue_name);
23+
let storage_account =
24+
StorageAccountClient::new_access_key(http_client.clone(), &account, &master_key);
25+
26+
let queue = storage_account.as_queue_client(queue_name);
2627

2728
trace!("getting messages");
2829

sdk/storage/examples/list_queues.rs renamed to sdk/storage_queues/examples/list_queues.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use azure_core::prelude::*;
22
use azure_storage::core::prelude::*;
3+
use azure_storage_queues::prelude::*;
34
use futures::stream::StreamExt;
45
use std::error::Error;
56
use std::num::NonZeroU32;
@@ -14,23 +15,24 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
1415

1516
let http_client = new_http_client();
1617

17-
let storage_account_client =
18+
let storage_account =
1819
StorageAccountClient::new_access_key(http_client.clone(), &account, &master_key);
19-
let storage_client = storage_account_client.as_storage_client();
20+
21+
let queue_service = storage_account.as_queue_service_client();
2022

2123
println!("getting service stats");
22-
let response = storage_client.get_queue_service_stats().execute().await?;
24+
let response = queue_service.get_queue_service_stats().execute().await?;
2325
println!("get_queue_service_properties.response == {:#?}", response);
2426

2527
println!("getting service properties");
26-
let response = storage_client
28+
let response = queue_service
2729
.get_queue_service_properties()
2830
.execute()
2931
.await?;
3032
println!("get_queue_service_stats.response == {:#?}", response);
3133

3234
println!("enumerating queues starting with a");
33-
let response = storage_client
35+
let response = queue_service
3436
.list_queues()
3537
.prefix("a")
3638
.include_metadata(true)
@@ -41,7 +43,7 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
4143

4244
println!("streaming queues");
4345
let mut stream = Box::pin(
44-
storage_client
46+
queue_service
4547
.list_queues()
4648
.max_results(NonZeroU32::new(3u32).unwrap())
4749
.stream(),

sdk/storage/examples/peek_messages.rs renamed to sdk/storage_queues/examples/peek_messages.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
extern crate log;
33
use azure_core::prelude::*;
44
use azure_storage::core::prelude::*;
5-
use azure_storage::queue::prelude::*;
5+
use azure_storage_queues::prelude::*;
66
use std::error::Error;
77

88
#[tokio::main]
@@ -19,9 +19,10 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
1919

2020
let http_client = new_http_client();
2121

22-
let queue = StorageAccountClient::new_access_key(http_client.clone(), &account, &master_key)
23-
.as_storage_client()
24-
.as_queue_client(queue_name);
22+
let storage_account =
23+
StorageAccountClient::new_access_key(http_client.clone(), &account, &master_key);
24+
25+
let queue = storage_account.as_queue_client(queue_name);
2526
println!("{:#?}", queue);
2627

2728
trace!("peeking messages");

sdk/storage/examples/put_message.rs renamed to sdk/storage_queues/examples/put_message.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
extern crate log;
33
use azure_core::prelude::*;
44
use azure_storage::core::prelude::*;
5-
use azure_storage::queue::prelude::*;
5+
use azure_storage_queues::prelude::*;
66
use std::error::Error;
77

88
#[tokio::main]
@@ -19,12 +19,12 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
1919

2020
let http_client = new_http_client();
2121

22-
let queue = StorageAccountClient::new_access_key(http_client.clone(), &account, &master_key)
23-
.as_storage_client()
24-
.as_queue_client(queue_name);
22+
let storage_account =
23+
StorageAccountClient::new_access_key(http_client.clone(), &account, &master_key);
2524

26-
trace!("putting message");
25+
let queue = storage_account.as_queue_client(queue_name);
2726

27+
trace!("putting message");
2828
let response = queue
2929
.put_message()
3030
.client_request_id("optional correlation token")

sdk/storage/examples/queue_create.rs renamed to sdk/storage_queues/examples/queue_create.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
extern crate log;
33
use azure_core::prelude::*;
44
use azure_storage::core::prelude::*;
5-
use azure_storage::queue::prelude::*;
5+
use azure_storage_queues::prelude::*;
66
use chrono::{Duration, Utc};
77
use std::error::Error;
88

@@ -20,11 +20,10 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
2020

2121
let http_client = new_http_client();
2222

23-
let storage_account_client =
23+
let storage_account =
2424
StorageAccountClient::new_access_key(http_client.clone(), &account, &master_key);
25-
let queue = storage_account_client
26-
.as_storage_client()
27-
.as_queue_client(queue_name);
25+
26+
let queue = storage_account.as_queue_client(queue_name);
2827

2928
trace!("creating queue");
3029

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
mod pop_receipt_client;
22
mod queue_client;
3+
mod queue_service_client;
34
pub use pop_receipt_client::{AsPopReceiptClient, PopReceiptClient};
45
pub use queue_client::{AsQueueClient, QueueClient};
6+
pub use queue_service_client::{AsQueueServiceClient, QueueServiceClient};

sdk/storage/src/queue/clients/pop_receipt_client.rs renamed to sdk/storage_queues/src/clients/pop_receipt_client.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
use crate::core::clients::StorageClient;
2-
use crate::queue::prelude::*;
3-
use crate::queue::requests::*;
1+
use crate::prelude::*;
2+
use crate::requests::*;
43
use azure_core::HttpClient;
4+
use azure_storage::core::clients::StorageClient;
55
use std::sync::Arc;
66

77
pub trait AsPopReceiptClient {

sdk/storage/src/queue/clients/queue_client.rs renamed to sdk/storage_queues/src/clients/queue_client.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
use crate::core::clients::StorageClient;
2-
use crate::queue::requests::*;
1+
use crate::requests::*;
2+
use azure_storage::core::clients::{AsStorageClient, StorageAccountClient, StorageClient};
33
use std::fmt::Debug;
44
use std::sync::Arc;
55

@@ -13,6 +13,12 @@ impl<QN: Into<String>> AsQueueClient<QN> for Arc<StorageClient> {
1313
}
1414
}
1515

16+
impl<QN: Into<String>> AsQueueClient<QN> for Arc<StorageAccountClient> {
17+
fn as_queue_client(&self, queue_name: QN) -> Arc<QueueClient> {
18+
self.as_storage_client().as_queue_client(queue_name)
19+
}
20+
}
21+
1622
#[derive(Debug, Clone)]
1723
pub struct QueueClient {
1824
storage_client: Arc<StorageClient>,

0 commit comments

Comments
 (0)