@@ -277,73 +277,73 @@ fn get_column_value(column: CqlValue, column_type: &Arc<CassDataType>) -> Value
277
277
}
278
278
}
279
279
280
- pub struct CassResultIterator {
281
- result : Arc < CassResult > ,
280
+ pub struct CassResultIterator < ' result > {
281
+ result : & ' result CassResult ,
282
282
position : Option < usize > ,
283
283
}
284
284
285
- pub struct CassRowIterator {
286
- row : & ' static CassRow ,
285
+ pub struct CassRowIterator < ' result > {
286
+ row : & ' result CassRow ,
287
287
position : Option < usize > ,
288
288
}
289
289
290
- pub struct CassCollectionIterator {
291
- value : & ' static CassValue ,
290
+ pub struct CassCollectionIterator < ' result > {
291
+ value : & ' result CassValue ,
292
292
count : u64 ,
293
293
position : Option < usize > ,
294
294
}
295
295
296
- pub struct CassMapIterator {
297
- value : & ' static CassValue ,
296
+ pub struct CassMapIterator < ' result > {
297
+ value : & ' result CassValue ,
298
298
count : u64 ,
299
299
position : Option < usize > ,
300
300
}
301
301
302
- pub struct CassUdtIterator {
303
- value : & ' static CassValue ,
302
+ pub struct CassUdtIterator < ' result > {
303
+ value : & ' result CassValue ,
304
304
count : u64 ,
305
305
position : Option < usize > ,
306
306
}
307
307
308
- pub struct CassSchemaMetaIterator {
309
- value : & ' static CassSchemaMeta ,
308
+ pub struct CassSchemaMetaIterator < ' schema > {
309
+ value : & ' schema CassSchemaMeta ,
310
310
count : usize ,
311
311
position : Option < usize > ,
312
312
}
313
313
314
- pub struct CassKeyspaceMetaIterator {
315
- value : & ' static CassKeyspaceMeta ,
314
+ pub struct CassKeyspaceMetaIterator < ' schema > {
315
+ value : & ' schema CassKeyspaceMeta ,
316
316
count : usize ,
317
317
position : Option < usize > ,
318
318
}
319
319
320
- pub struct CassTableMetaIterator {
321
- value : & ' static CassTableMeta ,
320
+ pub struct CassTableMetaIterator < ' schema > {
321
+ value : & ' schema CassTableMeta ,
322
322
count : usize ,
323
323
position : Option < usize > ,
324
324
}
325
325
326
- pub struct CassViewMetaIterator {
327
- value : & ' static CassMaterializedViewMeta ,
326
+ pub struct CassViewMetaIterator < ' schema > {
327
+ value : & ' schema CassMaterializedViewMeta ,
328
328
count : usize ,
329
329
position : Option < usize > ,
330
330
}
331
331
332
- pub enum CassIterator {
333
- CassResultIterator ( CassResultIterator ) ,
334
- CassRowIterator ( CassRowIterator ) ,
335
- CassCollectionIterator ( CassCollectionIterator ) ,
336
- CassMapIterator ( CassMapIterator ) ,
337
- CassUdtIterator ( CassUdtIterator ) ,
338
- CassSchemaMetaIterator ( CassSchemaMetaIterator ) ,
339
- CassKeyspaceMetaTableIterator ( CassKeyspaceMetaIterator ) ,
340
- CassKeyspaceMetaUserTypeIterator ( CassKeyspaceMetaIterator ) ,
341
- CassKeyspaceMetaViewIterator ( CassKeyspaceMetaIterator ) ,
342
- CassTableMetaIterator ( CassTableMetaIterator ) ,
343
- CassViewMetaIterator ( CassViewMetaIterator ) ,
332
+ pub enum CassIterator < ' result_or_schema > {
333
+ CassResultIterator ( CassResultIterator < ' result_or_schema > ) ,
334
+ CassRowIterator ( CassRowIterator < ' result_or_schema > ) ,
335
+ CassCollectionIterator ( CassCollectionIterator < ' result_or_schema > ) ,
336
+ CassMapIterator ( CassMapIterator < ' result_or_schema > ) ,
337
+ CassUdtIterator ( CassUdtIterator < ' result_or_schema > ) ,
338
+ CassSchemaMetaIterator ( CassSchemaMetaIterator < ' result_or_schema > ) ,
339
+ CassKeyspaceMetaTableIterator ( CassKeyspaceMetaIterator < ' result_or_schema > ) ,
340
+ CassKeyspaceMetaUserTypeIterator ( CassKeyspaceMetaIterator < ' result_or_schema > ) ,
341
+ CassKeyspaceMetaViewIterator ( CassKeyspaceMetaIterator < ' result_or_schema > ) ,
342
+ CassTableMetaIterator ( CassTableMetaIterator < ' result_or_schema > ) ,
343
+ CassViewMetaIterator ( CassViewMetaIterator < ' result_or_schema > ) ,
344
344
}
345
345
346
- impl BoxFFI for CassIterator { }
346
+ impl BoxFFI for CassIterator < ' _ > { }
347
347
348
348
#[ no_mangle]
349
349
pub unsafe extern "C" fn cass_iterator_free ( iterator : * mut CassIterator ) {
@@ -823,8 +823,10 @@ pub unsafe extern "C" fn cass_iterator_get_materialized_view_meta(
823
823
}
824
824
825
825
#[ no_mangle]
826
- pub unsafe extern "C" fn cass_iterator_from_result ( result : * const CassResult ) -> * mut CassIterator {
827
- let result_from_raw = ArcFFI :: cloned_from_ptr ( result) ;
826
+ pub unsafe extern "C" fn cass_iterator_from_result < ' result > (
827
+ result : * const CassResult ,
828
+ ) -> * mut CassIterator < ' result > {
829
+ let result_from_raw = ArcFFI :: as_ref ( result) ;
828
830
829
831
let iterator = CassResultIterator {
830
832
result : result_from_raw,
@@ -835,7 +837,9 @@ pub unsafe extern "C" fn cass_iterator_from_result(result: *const CassResult) ->
835
837
}
836
838
837
839
#[ no_mangle]
838
- pub unsafe extern "C" fn cass_iterator_from_row ( row : * const CassRow ) -> * mut CassIterator {
840
+ pub unsafe extern "C" fn cass_iterator_from_row < ' result > (
841
+ row : * const CassRow ,
842
+ ) -> * mut CassIterator < ' result > {
839
843
let row_from_raw = RefFFI :: as_ref ( row) ;
840
844
841
845
let iterator = CassRowIterator {
@@ -847,9 +851,9 @@ pub unsafe extern "C" fn cass_iterator_from_row(row: *const CassRow) -> *mut Cas
847
851
}
848
852
849
853
#[ no_mangle]
850
- pub unsafe extern "C" fn cass_iterator_from_collection (
854
+ pub unsafe extern "C" fn cass_iterator_from_collection < ' result > (
851
855
value : * const CassValue ,
852
- ) -> * mut CassIterator {
856
+ ) -> * mut CassIterator < ' result > {
853
857
let is_collection = cass_value_is_collection ( value) != 0 ;
854
858
855
859
if value. is_null ( ) || !is_collection {
@@ -873,7 +877,9 @@ pub unsafe extern "C" fn cass_iterator_from_collection(
873
877
}
874
878
875
879
#[ no_mangle]
876
- pub unsafe extern "C" fn cass_iterator_from_tuple ( value : * const CassValue ) -> * mut CassIterator {
880
+ pub unsafe extern "C" fn cass_iterator_from_tuple < ' result > (
881
+ value : * const CassValue ,
882
+ ) -> * mut CassIterator < ' result > {
877
883
let tuple = RefFFI :: as_ref ( value) ;
878
884
879
885
if let Some ( Value :: CollectionValue ( Collection :: Tuple ( val) ) ) = & tuple. value {
@@ -891,7 +897,9 @@ pub unsafe extern "C" fn cass_iterator_from_tuple(value: *const CassValue) -> *m
891
897
}
892
898
893
899
#[ no_mangle]
894
- pub unsafe extern "C" fn cass_iterator_from_map ( value : * const CassValue ) -> * mut CassIterator {
900
+ pub unsafe extern "C" fn cass_iterator_from_map < ' result > (
901
+ value : * const CassValue ,
902
+ ) -> * mut CassIterator < ' result > {
895
903
let map = RefFFI :: as_ref ( value) ;
896
904
897
905
if let Some ( Value :: CollectionValue ( Collection :: Map ( val) ) ) = & map. value {
@@ -909,9 +917,9 @@ pub unsafe extern "C" fn cass_iterator_from_map(value: *const CassValue) -> *mut
909
917
}
910
918
911
919
#[ no_mangle]
912
- pub unsafe extern "C" fn cass_iterator_fields_from_user_type (
920
+ pub unsafe extern "C" fn cass_iterator_fields_from_user_type < ' result > (
913
921
value : * const CassValue ,
914
- ) -> * mut CassIterator {
922
+ ) -> * mut CassIterator < ' result > {
915
923
let udt = RefFFI :: as_ref ( value) ;
916
924
917
925
if let Some ( Value :: CollectionValue ( Collection :: UserDefinedType { fields, .. } ) ) = & udt. value {
@@ -929,9 +937,9 @@ pub unsafe extern "C" fn cass_iterator_fields_from_user_type(
929
937
}
930
938
931
939
#[ no_mangle]
932
- pub unsafe extern "C" fn cass_iterator_keyspaces_from_schema_meta (
940
+ pub unsafe extern "C" fn cass_iterator_keyspaces_from_schema_meta < ' schema > (
933
941
schema_meta : * const CassSchemaMeta ,
934
- ) -> * mut CassIterator {
942
+ ) -> * mut CassIterator < ' schema > {
935
943
let metadata = BoxFFI :: as_ref ( schema_meta) ;
936
944
937
945
let iterator = CassSchemaMetaIterator {
@@ -944,9 +952,9 @@ pub unsafe extern "C" fn cass_iterator_keyspaces_from_schema_meta(
944
952
}
945
953
946
954
#[ no_mangle]
947
- pub unsafe extern "C" fn cass_iterator_tables_from_keyspace_meta (
955
+ pub unsafe extern "C" fn cass_iterator_tables_from_keyspace_meta < ' schema > (
948
956
keyspace_meta : * const CassKeyspaceMeta ,
949
- ) -> * mut CassIterator {
957
+ ) -> * mut CassIterator < ' schema > {
950
958
let metadata = RefFFI :: as_ref ( keyspace_meta) ;
951
959
952
960
let iterator = CassKeyspaceMetaIterator {
@@ -961,9 +969,9 @@ pub unsafe extern "C" fn cass_iterator_tables_from_keyspace_meta(
961
969
}
962
970
963
971
#[ no_mangle]
964
- pub unsafe extern "C" fn cass_iterator_materialized_views_from_keyspace_meta (
972
+ pub unsafe extern "C" fn cass_iterator_materialized_views_from_keyspace_meta < ' schema > (
965
973
keyspace_meta : * const CassKeyspaceMeta ,
966
- ) -> * mut CassIterator {
974
+ ) -> * mut CassIterator < ' schema > {
967
975
let metadata = RefFFI :: as_ref ( keyspace_meta) ;
968
976
969
977
let iterator = CassKeyspaceMetaIterator {
@@ -978,9 +986,9 @@ pub unsafe extern "C" fn cass_iterator_materialized_views_from_keyspace_meta(
978
986
}
979
987
980
988
#[ no_mangle]
981
- pub unsafe extern "C" fn cass_iterator_user_types_from_keyspace_meta (
989
+ pub unsafe extern "C" fn cass_iterator_user_types_from_keyspace_meta < ' schema > (
982
990
keyspace_meta : * const CassKeyspaceMeta ,
983
- ) -> * mut CassIterator {
991
+ ) -> * mut CassIterator < ' schema > {
984
992
let metadata = RefFFI :: as_ref ( keyspace_meta) ;
985
993
986
994
let iterator = CassKeyspaceMetaIterator {
@@ -995,9 +1003,9 @@ pub unsafe extern "C" fn cass_iterator_user_types_from_keyspace_meta(
995
1003
}
996
1004
997
1005
#[ no_mangle]
998
- pub unsafe extern "C" fn cass_iterator_columns_from_table_meta (
1006
+ pub unsafe extern "C" fn cass_iterator_columns_from_table_meta < ' schema > (
999
1007
table_meta : * const CassTableMeta ,
1000
- ) -> * mut CassIterator {
1008
+ ) -> * mut CassIterator < ' schema > {
1001
1009
let metadata = RefFFI :: as_ref ( table_meta) ;
1002
1010
1003
1011
let iterator = CassTableMetaIterator {
@@ -1009,9 +1017,9 @@ pub unsafe extern "C" fn cass_iterator_columns_from_table_meta(
1009
1017
BoxFFI :: into_ptr ( Box :: new ( CassIterator :: CassTableMetaIterator ( iterator) ) )
1010
1018
}
1011
1019
1012
- pub unsafe extern "C" fn cass_iterator_materialized_views_from_table_meta (
1020
+ pub unsafe extern "C" fn cass_iterator_materialized_views_from_table_meta < ' schema > (
1013
1021
table_meta : * const CassTableMeta ,
1014
- ) -> * mut CassIterator {
1022
+ ) -> * mut CassIterator < ' schema > {
1015
1023
let metadata = RefFFI :: as_ref ( table_meta) ;
1016
1024
1017
1025
let iterator = CassTableMetaIterator {
@@ -1023,9 +1031,9 @@ pub unsafe extern "C" fn cass_iterator_materialized_views_from_table_meta(
1023
1031
BoxFFI :: into_ptr ( Box :: new ( CassIterator :: CassTableMetaIterator ( iterator) ) )
1024
1032
}
1025
1033
1026
- pub unsafe extern "C" fn cass_iterator_columns_from_materialized_view_meta (
1034
+ pub unsafe extern "C" fn cass_iterator_columns_from_materialized_view_meta < ' schema > (
1027
1035
view_meta : * const CassMaterializedViewMeta ,
1028
- ) -> * mut CassIterator {
1036
+ ) -> * mut CassIterator < ' schema > {
1029
1037
let metadata = RefFFI :: as_ref ( view_meta) ;
1030
1038
1031
1039
let iterator = CassViewMetaIterator {
0 commit comments