@@ -125,22 +125,22 @@ impl MappingParametersBuilder {
125
125
gil : Python < ' _ > ,
126
126
parameters_names : Vec < String > ,
127
127
) -> PSQLPyResult < PreparedParameters > {
128
- if self . types . is_some ( ) {
129
- return self . prepare_typed ( gil, parameters_names) ;
128
+ match self . types . clone ( ) {
129
+ Some ( types) => return self . prepare_typed ( gil, parameters_names, types) ,
130
+ None => return self . prepare_not_typed ( gil, parameters_names) ,
130
131
}
131
-
132
- self . prepare_not_typed ( gil, parameters_names)
133
132
}
134
133
135
134
fn prepare_typed (
136
135
self ,
137
136
gil : Python < ' _ > ,
138
137
parameters_names : Vec < String > ,
138
+ types : Vec < Type > ,
139
139
) -> PSQLPyResult < PreparedParameters > {
140
- let converted_parameters = self
141
- . extract_parameters ( gil , parameters_names ) ?
142
- . iter ( )
143
- . map ( |parameter| from_python_untyped ( parameter. bind ( gil) ) )
140
+ let extracted_parameters = self . extract_parameters ( gil , parameters_names ) ? ;
141
+ let zipped_params_types = zip ( extracted_parameters , types ) ;
142
+ let converted_parameters = zipped_params_types
143
+ . map ( |( parameter, type_ ) | from_python_typed ( parameter. bind ( gil) , & type_ ) )
144
144
. collect :: < PSQLPyResult < Vec < PythonDTO > > > ( ) ?;
145
145
146
146
Ok ( PreparedParameters :: new ( converted_parameters, vec ! [ ] ) ) // TODO: change vec![] to real types.
@@ -196,13 +196,10 @@ impl SequenceParametersBuilder {
196
196
}
197
197
198
198
fn prepare ( self , gil : Python < ' _ > ) -> PSQLPyResult < PreparedParameters > {
199
- let types = self . types . clone ( ) ;
200
-
201
- if types. is_some ( ) {
202
- return self . prepare_typed ( gil, types. clone ( ) . unwrap ( ) ) ;
199
+ match self . types . clone ( ) {
200
+ Some ( types) => return self . prepare_typed ( gil, types) ,
201
+ None => return self . prepare_not_typed ( gil) ,
203
202
}
204
-
205
- self . prepare_not_typed ( gil)
206
203
}
207
204
208
205
fn prepare_typed ( self , gil : Python < ' _ > , types : Vec < Type > ) -> PSQLPyResult < PreparedParameters > {
0 commit comments