@@ -76,26 +76,16 @@ pub extern "C" fn credx_create_presentation(
7676 ) ) ;
7777 }
7878
79- let entries = {
80- let credentials = credentials. as_slice ( ) ;
81- credentials. into_iter ( ) . try_fold (
82- Vec :: with_capacity ( credentials. len ( ) ) ,
83- |mut r, ffi_entry| {
84- r. push ( ffi_entry. load ( ) ?) ;
85- Result :: Ok ( r)
86- } ,
87- ) ?
88- } ;
89-
90- let schemas = IndyObjectList :: load ( schemas. as_slice ( ) ) ?;
91- let cred_defs = IndyObjectList :: load ( cred_defs. as_slice ( ) ) ?;
79+ let entries = credentials. try_collect ( |entry| entry. load ( ) ) ?;
80+ let schemas = IndyObjectList :: load ( schemas. as_slice ( ) ?) ?;
81+ let cred_defs = IndyObjectList :: load ( cred_defs. as_slice ( ) ?) ?;
9282
9383 let self_attested = if !self_attest_names. is_empty ( ) {
9484 let mut self_attested = HashMap :: new ( ) ;
9585 for ( name, raw) in self_attest_names
96- . as_slice ( )
97- . into_iter ( )
98- . zip ( self_attest_values. as_slice ( ) )
86+ . as_slice ( ) ?
87+ . iter ( )
88+ . zip ( self_attest_values. as_slice ( ) ? )
9989 {
10090 let name = name
10191 . as_opt_str ( )
@@ -125,7 +115,7 @@ pub extern "C" fn credx_create_presentation(
125115 . transpose ( ) ?,
126116 ) ;
127117
128- for prove in credentials_prove. as_slice ( ) {
118+ for prove in credentials_prove. as_slice ( ) ? {
129119 if prove. entry_idx < 0 {
130120 return Err ( err_msg ! ( "Invalid credential index" ) ) ;
131121 }
@@ -239,19 +229,10 @@ fn _credx_verify_presentation(
239229 result_p : * mut i8 ,
240230) -> ErrorCode {
241231 catch_error ( || {
242- let schemas = IndyObjectList :: load ( schemas. as_slice ( ) ) ?;
243- let cred_defs = IndyObjectList :: load ( cred_defs. as_slice ( ) ) ?;
244- let rev_reg_defs = IndyObjectList :: load ( rev_reg_defs. as_slice ( ) ) ?;
245- let rev_reg_entries = {
246- let entries = rev_reg_entries. as_slice ( ) ;
247- entries. into_iter ( ) . try_fold (
248- Vec :: with_capacity ( entries. len ( ) ) ,
249- |mut r, ffi_entry| {
250- r. push ( ffi_entry. load ( ) ?) ;
251- Result :: Ok ( r)
252- } ,
253- ) ?
254- } ;
232+ let schemas = IndyObjectList :: load ( schemas. as_slice ( ) ?) ?;
233+ let cred_defs = IndyObjectList :: load ( cred_defs. as_slice ( ) ?) ?;
234+ let rev_reg_defs = IndyObjectList :: load ( rev_reg_defs. as_slice ( ) ?) ?;
235+ let rev_reg_entries = rev_reg_entries. try_collect ( |entry| entry. load ( ) ) ?;
255236 let mut rev_regs = HashMap :: new ( ) ;
256237 for ( idx, entry, timestamp) in rev_reg_entries. iter ( ) {
257238 if * idx > rev_reg_defs. len ( ) {
0 commit comments