Skip to content

Commit 0f81bc9

Browse files
committed
Inline the future
1 parent c2b8ec4 commit 0f81bc9

File tree

1 file changed

+24
-41
lines changed

1 file changed

+24
-41
lines changed

sdk/cosmos/src/operations/create_database.rs

Lines changed: 24 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
use std::future::Future;
2-
use std::pin::Pin;
3-
41
use crate::headers::from_headers::*;
52
use crate::prelude::*;
63
use crate::resources::Database;
@@ -32,53 +29,39 @@ impl CreateDatabaseBuilder {
3229
context: Context => context,
3330
}
3431

35-
async fn build(self) -> crate::Result<CreateDatabaseResponse> {
36-
let mut request = self
37-
.client
38-
.prepare_request_pipeline("dbs", http::Method::POST);
39-
40-
let mut pipeline_context =
41-
PipelineContext::new(self.context, ResourceType::Databases.into());
42-
43-
let body = CreateDatabaseBody {
44-
id: self.database_name.as_str(),
45-
};
46-
47-
azure_core::headers::add_optional_header2(&self.consistency_level, &mut request)?;
48-
request.set_body(bytes::Bytes::from(serde_json::to_string(&body)?).into());
49-
let response = self
50-
.client
51-
.pipeline()
52-
.send(&mut pipeline_context, &mut request)
53-
.await?;
54-
55-
Ok(CreateDatabaseResponse::try_from(response).await?)
56-
}
57-
5832
pub fn insert<E: Send + Sync + 'static>(&mut self, entity: E) -> &mut Self {
5933
self.context.insert(entity);
6034
self
6135
}
6236

63-
// impl std::future::IntoFuture for CreateDatabaseBuilder {}
6437
pub fn into_future(self) -> CreateDatabase {
65-
CreateDatabase(Box::pin(self.build()))
38+
Box::pin(async {
39+
let mut request = self
40+
.client
41+
.prepare_request_pipeline("dbs", http::Method::POST);
42+
43+
let mut pipeline_context =
44+
PipelineContext::new(self.context, ResourceType::Databases.into());
45+
46+
let body = CreateDatabaseBody {
47+
id: self.database_name.as_str(),
48+
};
49+
50+
azure_core::headers::add_optional_header2(&self.consistency_level, &mut request)?;
51+
request.set_body(bytes::Bytes::from(serde_json::to_string(&body)?).into());
52+
let response = self
53+
.client
54+
.pipeline()
55+
.send(&mut pipeline_context, &mut request)
56+
.await?;
57+
58+
CreateDatabaseResponse::try_from(response).await
59+
})
6660
}
6761
}
6862

69-
pub struct CreateDatabase(
70-
Pin<Box<dyn Future<Output = crate::Result<CreateDatabaseResponse>> + Send + 'static>>,
71-
);
72-
73-
impl Future for CreateDatabase {
74-
type Output = crate::Result<CreateDatabaseResponse>;
75-
fn poll(
76-
mut self: std::pin::Pin<&mut Self>,
77-
cx: &mut std::task::Context<'_>,
78-
) -> std::task::Poll<Self::Output> {
79-
Pin::new(&mut self.0).poll(cx)
80-
}
81-
}
63+
/// A future of a create database response
64+
type CreateDatabase = futures::future::BoxFuture<'static, crate::Result<CreateDatabaseResponse>>;
8265

8366
#[derive(Serialize)]
8467
struct CreateDatabaseBody<'a> {

0 commit comments

Comments
 (0)