Skip to content

Commit 3f1165c

Browse files
authored
RUST-851 Remove default type parameter from Collection (#372)
* RUST-851 Remove default type parameter from Collection * fix some missed doctests
1 parent 4e2f466 commit 3f1165c

File tree

12 files changed

+110
-86
lines changed

12 files changed

+110
-86
lines changed

src/client/session/mod.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ lazy_static! {
5050
///
5151
/// ```rust
5252
/// use mongodb::{
53-
/// bson::doc,
53+
/// bson::{doc, Document},
5454
/// error::{Result, TRANSIENT_TRANSACTION_ERROR, UNKNOWN_TRANSACTION_COMMIT_RESULT},
5555
/// options::{Acknowledgment, ReadConcern, TransactionOptions, WriteConcern},
5656
/// # Client,
@@ -60,7 +60,7 @@ lazy_static! {
6060
///
6161
/// # async fn do_stuff() -> Result<()> {
6262
/// # let client = Client::with_uri_str("mongodb://example.com").await?;
63-
/// # let coll = client.database("foo").collection("bar");
63+
/// # let coll: Collection<Document> = client.database("foo").collection("bar");
6464
/// let mut session = client.start_session(None).await?;
6565
/// let options = TransactionOptions::builder()
6666
/// .read_concern(ReadConcern::majority())
@@ -77,7 +77,7 @@ lazy_static! {
7777
/// # Ok(())
7878
/// # }
7979
///
80-
/// async fn execute_transaction(coll: &Collection, session: &mut ClientSession) -> Result<()> {
80+
/// async fn execute_transaction(coll: &Collection<Document>, session: &mut ClientSession) -> Result<()> {
8181
/// coll.insert_one_with_session(doc! { "x": 1 }, None, session).await?;
8282
/// coll.delete_one_with_session(doc! { "y": 2 }, None, session).await?;
8383
/// // An "UnknownTransactionCommitResult" label indicates that it is unknown whether the
@@ -423,7 +423,7 @@ impl ClientSession {
423423
/// # Ok(())
424424
/// # }
425425
///
426-
/// async fn execute_transaction(coll: &Collection, session: &mut ClientSession) -> Result<()> {
426+
/// async fn execute_transaction(coll: &Collection<Document>, session: &mut ClientSession) -> Result<()> {
427427
/// coll.insert_one_with_session(doc! { "x": 1 }, None, session).await?;
428428
/// coll.delete_one_with_session(doc! { "y": 2 }, None, session).await?;
429429
/// Ok(())

src/client/session/test.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,11 @@ async fn find_and_getmore_share_session() {
479479
},
480480
];
481481

482-
async fn run_test(client: &EventClient, coll: &Collection, read_preference: ReadPreference) {
482+
async fn run_test(
483+
client: &EventClient,
484+
coll: &Collection<Document>,
485+
read_preference: ReadPreference,
486+
) {
483487
let options = FindOptions::builder()
484488
.batch_size(2)
485489
.selection_criteria(read_preference.into())

src/coll/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ const MAX_INSERT_DOCS_BYTES: usize = 16 * 1000 * 1000;
8484
/// ```
8585
8686
#[derive(Debug, Clone)]
87-
pub struct Collection<T = Document>
87+
pub struct Collection<T>
8888
where
8989
T: Serialize + DeserializeOwned + Unpin + Debug,
9090
{

src/concern/test.rs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ async fn assert_event_contains_read_concern(client: &EventClient) {
228228
async fn command_contains_write_concern_insert_one() {
229229
let _guard = LOCK.run_concurrently().await;
230230
let client = EventClient::new().await;
231-
let coll: Collection = client.database("test").collection(function_name!());
231+
let coll: Collection<Document> = client.database("test").collection(function_name!());
232232

233233
coll.drop(None).await.unwrap();
234234
coll.insert_one(
@@ -279,7 +279,7 @@ async fn command_contains_write_concern_insert_one() {
279279
async fn command_contains_write_concern_insert_many() {
280280
let _guard = LOCK.run_concurrently().await;
281281
let client = EventClient::new().await;
282-
let coll: Collection = client.database("test").collection(function_name!());
282+
let coll: Collection<Document> = client.database("test").collection(function_name!());
283283

284284
coll.drop(None).await.unwrap();
285285
coll.insert_many(
@@ -330,7 +330,7 @@ async fn command_contains_write_concern_insert_many() {
330330
async fn command_contains_write_concern_update_one() {
331331
let _guard = LOCK.run_concurrently().await;
332332
let client = EventClient::new().await;
333-
let coll: Collection = client.database("test").collection(function_name!());
333+
let coll: Collection<Document> = client.database("test").collection(function_name!());
334334

335335
coll.drop(None).await.unwrap();
336336
coll.insert_one(doc! { "foo": "bar" }, None).await.unwrap();
@@ -384,7 +384,7 @@ async fn command_contains_write_concern_update_one() {
384384
async fn command_contains_write_concern_update_many() {
385385
let _guard = LOCK.run_concurrently().await;
386386
let client = EventClient::new().await;
387-
let coll: Collection = client.database("test").collection(function_name!());
387+
let coll: Collection<Document> = client.database("test").collection(function_name!());
388388

389389
coll.drop(None).await.unwrap();
390390
coll.insert_many(&[doc! { "foo": "bar" }, doc! { "foo": "bar" }], None)
@@ -440,7 +440,7 @@ async fn command_contains_write_concern_update_many() {
440440
async fn command_contains_write_concern_replace_one() {
441441
let _guard = LOCK.run_concurrently().await;
442442
let client = EventClient::new().await;
443-
let coll: Collection = client.database("test").collection(function_name!());
443+
let coll: Collection<Document> = client.database("test").collection(function_name!());
444444

445445
coll.drop(None).await.unwrap();
446446
coll.insert_one(doc! { "foo": "bar" }, None).await.unwrap();
@@ -494,7 +494,7 @@ async fn command_contains_write_concern_replace_one() {
494494
async fn command_contains_write_concern_delete_one() {
495495
let _guard = LOCK.run_concurrently().await;
496496
let client = EventClient::new().await;
497-
let coll: Collection = client.database("test").collection(function_name!());
497+
let coll: Collection<Document> = client.database("test").collection(function_name!());
498498

499499
coll.drop(None).await.unwrap();
500500
coll.insert_many(&[doc! { "foo": "bar" }, doc! { "foo": "bar" }], None)
@@ -548,7 +548,7 @@ async fn command_contains_write_concern_delete_one() {
548548
async fn command_contains_write_concern_delete_many() {
549549
let _guard = LOCK.run_concurrently().await;
550550
let client = EventClient::new().await;
551-
let coll: Collection = client.database("test").collection(function_name!());
551+
let coll: Collection<Document> = client.database("test").collection(function_name!());
552552

553553
coll.drop(None).await.unwrap();
554554
coll.insert_many(&[doc! { "foo": "bar" }, doc! { "foo": "bar" }], None)
@@ -605,7 +605,7 @@ async fn command_contains_write_concern_delete_many() {
605605
async fn command_contains_write_concern_find_one_and_delete() {
606606
let _guard = LOCK.run_concurrently().await;
607607
let client = EventClient::new().await;
608-
let coll: Collection = client.database("test").collection(function_name!());
608+
let coll: Collection<Document> = client.database("test").collection(function_name!());
609609

610610
coll.drop(None).await.unwrap();
611611
coll.insert_many(&[doc! { "foo": "bar" }, doc! { "foo": "bar" }], None)
@@ -659,7 +659,7 @@ async fn command_contains_write_concern_find_one_and_delete() {
659659
async fn command_contains_write_concern_find_one_and_replace() {
660660
let _guard = LOCK.run_concurrently().await;
661661
let client = EventClient::new().await;
662-
let coll: Collection = client.database("test").collection(function_name!());
662+
let coll: Collection<Document> = client.database("test").collection(function_name!());
663663

664664
coll.drop(None).await.unwrap();
665665
coll.insert_many(&[doc! { "foo": "bar" }, doc! { "foo": "bar" }], None)
@@ -715,7 +715,7 @@ async fn command_contains_write_concern_find_one_and_replace() {
715715
async fn command_contains_write_concern_find_one_and_update() {
716716
let _guard = LOCK.run_concurrently().await;
717717
let client = EventClient::new().await;
718-
let coll: Collection = client.database("test").collection(function_name!());
718+
let coll: Collection<Document> = client.database("test").collection(function_name!());
719719

720720
coll.drop(None).await.unwrap();
721721
coll.insert_many(&[doc! { "foo": "bar" }, doc! { "foo": "bar" }], None)
@@ -771,7 +771,7 @@ async fn command_contains_write_concern_find_one_and_update() {
771771
async fn command_contains_write_concern_aggregate() {
772772
let _guard = LOCK.run_concurrently().await;
773773
let client = EventClient::new().await;
774-
let coll: Collection = client.database("test").collection(function_name!());
774+
let coll: Collection<Document> = client.database("test").collection(function_name!());
775775

776776
coll.drop(None).await.unwrap();
777777
coll.insert_one(doc! { "foo": "bar" }, None).await.unwrap();
@@ -831,7 +831,7 @@ async fn command_contains_write_concern_aggregate() {
831831
async fn command_contains_write_concern_drop() {
832832
let _guard = LOCK.run_concurrently().await;
833833
let client = EventClient::new().await;
834-
let coll: Collection = client.database("test").collection(function_name!());
834+
let coll: Collection<Document> = client.database("test").collection(function_name!());
835835

836836
coll.drop(None).await.unwrap();
837837
client.clear_cached_events();
@@ -884,7 +884,7 @@ async fn command_contains_write_concern_create_collection() {
884884
let _guard = LOCK.run_concurrently().await;
885885
let client = EventClient::new().await;
886886
let db = client.database("test");
887-
let coll: Collection = db.collection(function_name!());
887+
let coll: Collection<Document> = db.collection(function_name!());
888888

889889
coll.drop(None).await.unwrap();
890890
db.create_collection(

src/test/documentation_examples.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ macro_rules! run_on_each_doc {
3232
}};
3333
}
3434

35-
async fn insert_examples(collection: &Collection) -> Result<()> {
35+
async fn insert_examples(collection: &Collection<Document>) -> Result<()> {
3636
collection.drop(None).await.unwrap();
3737

3838
// Start Example 1
@@ -103,7 +103,7 @@ async fn insert_examples(collection: &Collection) -> Result<()> {
103103
Ok(())
104104
}
105105

106-
async fn query_top_level_fields_examples(collection: &Collection) -> Result<()> {
106+
async fn query_top_level_fields_examples(collection: &Collection<Document>) -> Result<()> {
107107
collection.drop(None).await.unwrap();
108108

109109
// Start Example 6
@@ -248,7 +248,7 @@ async fn query_top_level_fields_examples(collection: &Collection) -> Result<()>
248248
Ok(())
249249
}
250250

251-
async fn query_embedded_documents_examples(collection: &Collection) -> Result<()> {
251+
async fn query_embedded_documents_examples(collection: &Collection<Document>) -> Result<()> {
252252
collection.drop(None).await.unwrap();
253253

254254
// Start Example 14
@@ -381,7 +381,7 @@ async fn query_embedded_documents_examples(collection: &Collection) -> Result<()
381381
Ok(())
382382
}
383383

384-
async fn query_arrays_examples(collection: &Collection) -> Result<()> {
384+
async fn query_arrays_examples(collection: &Collection<Document>) -> Result<()> {
385385
collection.drop(None).await?;
386386

387387
// Start Example 20
@@ -540,7 +540,7 @@ async fn query_arrays_examples(collection: &Collection) -> Result<()> {
540540
Ok(())
541541
}
542542

543-
async fn query_array_embedded_documents_examples(collection: &Collection) -> Result<()> {
543+
async fn query_array_embedded_documents_examples(collection: &Collection<Document>) -> Result<()> {
544544
collection.drop(None).await?;
545545

546546
// Start Example 29
@@ -713,7 +713,7 @@ async fn query_array_embedded_documents_examples(collection: &Collection) -> Res
713713
Ok(())
714714
}
715715

716-
async fn query_null_or_missing_fields_examples(collection: &Collection) -> Result<()> {
716+
async fn query_null_or_missing_fields_examples(collection: &Collection<Document>) -> Result<()> {
717717
collection.drop(None).await.unwrap();
718718

719719
// Start Example 38
@@ -774,7 +774,7 @@ async fn query_null_or_missing_fields_examples(collection: &Collection) -> Resul
774774
Ok(())
775775
}
776776

777-
async fn projection_examples(collection: &Collection) -> Result<()> {
777+
async fn projection_examples(collection: &Collection<Document>) -> Result<()> {
778778
collection.drop(None).await?;
779779

780780
// Start Example 42
@@ -1056,7 +1056,7 @@ async fn projection_examples(collection: &Collection) -> Result<()> {
10561056
Ok(())
10571057
}
10581058

1059-
async fn update_examples(collection: &Collection) -> Result<()> {
1059+
async fn update_examples(collection: &Collection<Document>) -> Result<()> {
10601060
collection.drop(None).await.unwrap();
10611061

10621062
// Start Example 51
@@ -1284,7 +1284,7 @@ async fn update_examples(collection: &Collection) -> Result<()> {
12841284
Ok(())
12851285
}
12861286

1287-
async fn delete_examples(collection: &Collection) -> Result<()> {
1287+
async fn delete_examples(collection: &Collection<Document>) -> Result<()> {
12881288
collection.drop(None).await.unwrap();
12891289

12901290
// Start Example 55

src/test/spec/command_monitoring/operation.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ pub(super) trait TestOperation {
2121
/// The command names to monitor as part of this test.
2222
fn command_names(&self) -> &[&str];
2323

24-
async fn execute(&self, collection: Collection) -> Result<()>;
24+
async fn execute(&self, collection: Collection<Document>) -> Result<()>;
2525
}
2626

2727
pub(super) struct AnyTestOperation {
@@ -81,7 +81,7 @@ impl TestOperation for DeleteMany {
8181
&["delete"]
8282
}
8383

84-
async fn execute(&self, collection: Collection) -> Result<()> {
84+
async fn execute(&self, collection: Collection<Document>) -> Result<()> {
8585
collection
8686
.delete_many(self.filter.clone(), None)
8787
.await
@@ -100,7 +100,7 @@ impl TestOperation for DeleteOne {
100100
&["delete"]
101101
}
102102

103-
async fn execute(&self, collection: Collection) -> Result<()> {
103+
async fn execute(&self, collection: Collection<Document>) -> Result<()> {
104104
collection
105105
.delete_one(self.filter.clone(), None)
106106
.await
@@ -165,7 +165,7 @@ impl TestOperation for Find {
165165
&["find", "getMore"]
166166
}
167167

168-
async fn execute(&self, collection: Collection) -> Result<()> {
168+
async fn execute(&self, collection: Collection<Document>) -> Result<()> {
169169
let mut options = FindOptions {
170170
sort: self.sort.clone(),
171171
skip: self.skip,
@@ -200,7 +200,7 @@ impl TestOperation for InsertMany {
200200
&["insert"]
201201
}
202202

203-
async fn execute(&self, collection: Collection) -> Result<()> {
203+
async fn execute(&self, collection: Collection<Document>) -> Result<()> {
204204
collection
205205
.insert_many(self.documents.clone(), self.options.clone())
206206
.await
@@ -219,7 +219,7 @@ impl TestOperation for InsertOne {
219219
&["insert"]
220220
}
221221

222-
async fn execute(&self, collection: Collection) -> Result<()> {
222+
async fn execute(&self, collection: Collection<Document>) -> Result<()> {
223223
collection
224224
.insert_one(self.document.clone(), None)
225225
.await
@@ -239,7 +239,7 @@ impl TestOperation for UpdateMany {
239239
&["update"]
240240
}
241241

242-
async fn execute(&self, collection: Collection) -> Result<()> {
242+
async fn execute(&self, collection: Collection<Document>) -> Result<()> {
243243
collection
244244
.update_many(self.filter.clone(), self.update.clone(), None)
245245
.await
@@ -261,7 +261,7 @@ impl TestOperation for UpdateOne {
261261
&["update"]
262262
}
263263

264-
async fn execute(&self, collection: Collection) -> Result<()> {
264+
async fn execute(&self, collection: Collection<Document>) -> Result<()> {
265265
let options = self.upsert.map(|b| UpdateOptions {
266266
upsert: Some(b),
267267
..Default::default()

0 commit comments

Comments
 (0)