@@ -56,9 +56,9 @@ impl Arguments {
56
56
pub fn aggregate_from_json ( object : & Map < String , Value > ) -> Result < Arguments , String > {
57
57
let options = AggregateOptions :: from_json ( object) ;
58
58
59
- let array = val_or_err ! ( object. get( "pipeline" ) . map( Bson :: from_json ) ,
60
- Some ( Bson :: Array ( arr) ) => arr,
61
- "`aggregate` requires pipeline array" ) ;
59
+ let array = val_or_err ! ( object. get( "pipeline" ) . map( Value :: clone ) . map ( Into :: into ) ,
60
+ Some ( Bson :: Array ( arr) ) => arr,
61
+ "`aggregate` requires pipeline array" ) ;
62
62
63
63
let mut docs = vec ! [ ] ;
64
64
let mut out = false ;
@@ -85,7 +85,7 @@ impl Arguments {
85
85
pub fn count_from_json ( object : & Map < String , Value > ) -> Arguments {
86
86
let options = CountOptions :: from_json ( object) ;
87
87
88
- let filter = match object. get ( "filter" ) . map ( Bson :: from_json ) {
88
+ let filter = match object. get ( "filter" ) . map ( Value :: clone ) . map ( Into :: into ) {
89
89
Some ( Bson :: Document ( doc) ) => Some ( doc) ,
90
90
_ => None ,
91
91
} ;
@@ -97,7 +97,7 @@ impl Arguments {
97
97
}
98
98
99
99
pub fn delete_from_json ( object : & Map < String , Value > , many : bool ) -> Result < Arguments , String > {
100
- let document = val_or_err ! ( object. get( "filter" ) . map( Bson :: from_json ) ,
100
+ let document = val_or_err ! ( object. get( "filter" ) . map( Value :: clone ) . map ( Into :: into ) ,
101
101
Some ( Bson :: Document ( doc) ) => doc,
102
102
"`delete` requires document" ) ;
103
103
@@ -108,11 +108,11 @@ impl Arguments {
108
108
}
109
109
110
110
pub fn distinct_from_json ( object : & Map < String , Value > ) -> Result < Arguments , String > {
111
- let field_name = val_or_err ! ( object. get( "fieldName" ) . map( Bson :: from_json ) ,
111
+ let field_name = val_or_err ! ( object. get( "fieldName" ) . map( Value :: clone ) . map ( Into :: into ) ,
112
112
Some ( Bson :: String ( ref s) ) => s. to_owned( ) ,
113
113
"`distinct` requires field name" ) ;
114
114
115
- let filter = match object. get ( "filter" ) . map ( Bson :: from_json ) {
115
+ let filter = match object. get ( "filter" ) . map ( Value :: clone ) . map ( Into :: into ) {
116
116
Some ( Bson :: Document ( doc) ) => Some ( doc) ,
117
117
_ => None ,
118
118
} ;
@@ -126,7 +126,7 @@ impl Arguments {
126
126
pub fn find_from_json ( object : & Map < String , Value > ) -> Arguments {
127
127
let options = FindOptions :: from_json ( object) ;
128
128
129
- let filter = match object. get ( "filter" ) . map ( Bson :: from_json ) {
129
+ let filter = match object. get ( "filter" ) . map ( Value :: clone ) . map ( Into :: into ) {
130
130
Some ( Bson :: Document ( doc) ) => Some ( doc) ,
131
131
_ => None ,
132
132
} ;
@@ -140,7 +140,7 @@ impl Arguments {
140
140
pub fn find_one_and_delete_from_json ( object : & Map < String , Value > ) -> Result < Arguments , String > {
141
141
let options = FindOneAndDeleteOptions :: from_json ( object) ;
142
142
143
- let filter = val_or_err ! ( object. get( "filter" ) . map( Bson :: from_json ) ,
143
+ let filter = val_or_err ! ( object. get( "filter" ) . map( Value :: clone ) . map ( Into :: into ) ,
144
144
Some ( Bson :: Document ( doc) ) => doc,
145
145
"`find_one_and_delete` requires filter document" ) ;
146
146
@@ -153,11 +153,11 @@ impl Arguments {
153
153
pub fn find_one_and_replace_from_json ( object : & Map < String , Value > ) -> Result < Arguments , String > {
154
154
let options = FindOneAndUpdateOptions :: from_json ( object) ;
155
155
156
- let filter = val_or_err ! ( object. get( "filter" ) . map( Bson :: from_json ) ,
156
+ let filter = val_or_err ! ( object. get( "filter" ) . map( Value :: clone ) . map ( Into :: into ) ,
157
157
Some ( Bson :: Document ( doc) ) => doc,
158
158
"`find_one_and_update` requires filter document" ) ;
159
159
160
- let replacement = val_or_err ! ( object. get( "replacement" ) . map( Bson :: from_json ) ,
160
+ let replacement = val_or_err ! ( object. get( "replacement" ) . map( Value :: clone ) . map ( Into :: into ) ,
161
161
Some ( Bson :: Document ( doc) ) => doc,
162
162
"`find_one_and_replace` requires replacement document" ) ;
163
163
@@ -171,11 +171,11 @@ impl Arguments {
171
171
pub fn find_one_and_update_from_json ( object : & Map < String , Value > ) -> Result < Arguments , String > {
172
172
let options = FindOneAndUpdateOptions :: from_json ( object) ;
173
173
174
- let filter = val_or_err ! ( object. get( "filter" ) . map( Bson :: from_json ) ,
174
+ let filter = val_or_err ! ( object. get( "filter" ) . map( Value :: clone ) . map ( Into :: into ) ,
175
175
Some ( Bson :: Document ( doc) ) => doc,
176
176
"`find_one_and_update` requires filter document" ) ;
177
177
178
- let update = val_or_err ! ( object. get( "update" ) . map( Bson :: from_json ) ,
178
+ let update = val_or_err ! ( object. get( "update" ) . map( Value :: clone ) . map ( Into :: into ) ,
179
179
Some ( Bson :: Document ( doc) ) => doc,
180
180
"`find_one_and_update` requires update document" ) ;
181
181
@@ -187,7 +187,7 @@ impl Arguments {
187
187
}
188
188
189
189
pub fn insert_many_from_json ( object : & Map < String , Value > ) -> Result < Arguments , String > {
190
- let bsons = val_or_err ! ( object. get( "documents" ) . map( Bson :: from_json ) ,
190
+ let bsons = val_or_err ! ( object. get( "documents" ) . map( Value :: clone ) . map ( Into :: into ) ,
191
191
Some ( Bson :: Array ( arr) ) => arr,
192
192
"`insert_many` requires documents" ) ;
193
193
@@ -204,23 +204,23 @@ impl Arguments {
204
204
}
205
205
206
206
pub fn insert_one_from_json ( object : & Map < String , Value > ) -> Result < Arguments , String > {
207
- let document = val_or_err ! ( object. get( "document" ) . map( Bson :: from_json ) ,
207
+ let document = val_or_err ! ( object. get( "document" ) . map( Value :: clone ) . map ( Into :: into ) ,
208
208
Some ( Bson :: Document ( doc) ) => doc,
209
209
"`delete_one` requires document" ) ;
210
210
211
211
Ok ( Arguments :: InsertOne { document : document } )
212
212
}
213
213
214
214
pub fn replace_one_from_json ( object : & Map < String , Value > ) -> Result < Arguments , String > {
215
- let filter = val_or_err ! ( object. get( "filter" ) . map( Bson :: from_json ) ,
215
+ let filter = val_or_err ! ( object. get( "filter" ) . map( Value :: clone ) . map ( Into :: into ) ,
216
216
Some ( Bson :: Document ( doc) ) => doc,
217
217
"`update` requires filter document" ) ;
218
218
219
- let replacement = val_or_err ! ( object. get( "replacement" ) . map( Bson :: from_json ) ,
219
+ let replacement = val_or_err ! ( object. get( "replacement" ) . map( Value :: clone ) . map ( Into :: into ) ,
220
220
Some ( Bson :: Document ( doc) ) => doc,
221
221
"`update` requires update document" ) ;
222
222
223
- let upsert = var_match ! ( object. get( "upsert" ) . map( Bson :: from_json ) ,
223
+ let upsert = var_match ! ( object. get( "upsert" ) . map( Value :: clone ) . map ( Into :: into ) ,
224
224
Some ( Bson :: Boolean ( b) ) => b) ;
225
225
226
226
Ok ( Arguments :: ReplaceOne {
@@ -231,15 +231,15 @@ impl Arguments {
231
231
}
232
232
233
233
pub fn update_from_json ( object : & Map < String , Value > , many : bool ) -> Result < Arguments , String > {
234
- let filter = val_or_err ! ( object. get( "filter" ) . map( Bson :: from_json ) ,
234
+ let filter = val_or_err ! ( object. get( "filter" ) . map( Value :: clone ) . map ( Into :: into ) ,
235
235
Some ( Bson :: Document ( doc) ) => doc,
236
236
"`update` requires filter document" ) ;
237
237
238
- let update = val_or_err ! ( object. get( "update" ) . map( Bson :: from_json ) ,
238
+ let update = val_or_err ! ( object. get( "update" ) . map( Value :: clone ) . map ( Into :: into ) ,
239
239
Some ( Bson :: Document ( doc) ) => doc,
240
240
"`update` requires update document" ) ;
241
241
242
- let upsert = var_match ! ( object. get( "upsert" ) . map( Bson :: from_json ) ,
242
+ let upsert = var_match ! ( object. get( "upsert" ) . map( Value :: clone ) . map ( Into :: into ) ,
243
243
Some ( Bson :: Boolean ( b) ) => b) ;
244
244
245
245
Ok ( Arguments :: Update {
0 commit comments