@@ -41,6 +41,22 @@ impl MotokoBuilder {
41
41
} )
42
42
}
43
43
44
+ fn obtain_canister_maps ( pool : & CanisterPool ) -> ( BTreeMap < String , String > , BTreeMap < String , String > ) {
45
+ // from name to principal:
46
+ let id_map = pool
47
+ . get_canister_list ( )
48
+ . iter ( )
49
+ . map ( |c| ( c. get_name ( ) . to_string ( ) , c. canister_id ( ) . to_text ( ) ) )
50
+ . collect ( ) ;
51
+ // from principal to name:
52
+ let rev_id_map = pool
53
+ . get_canister_list ( )
54
+ . iter ( )
55
+ . map ( |c| ( c. canister_id ( ) . to_text ( ) , c. get_name ( ) . to_string ( ) ) )
56
+ . collect ( ) ;
57
+ ( id_map, rev_id_map)
58
+ }
59
+
44
60
/// Accomplish build given the already calculated canister dependencies
45
61
fn do_build (
46
62
& self ,
@@ -315,29 +331,16 @@ impl CanisterBuilder for MotokoBuilder {
315
331
) -> DfxResult < BuildOutput > {
316
332
let motoko_info = canister_info. as_info :: < MotokoCanisterInfo > ( ) ?;
317
333
318
- // from name to principal:
319
- let id_map = pool
320
- . get_canister_list ( )
321
- . iter ( )
322
- . map ( |c| ( c. get_name ( ) . to_string ( ) , c. canister_id ( ) . to_text ( ) ) )
323
- . collect ( ) ;
324
- // from principal to name:
325
- let rev_id_map: BTreeMap < String , String > = pool
326
- . get_canister_list ( )
327
- . iter ( )
328
- . map ( |c| ( c. canister_id ( ) . to_text ( ) , c. get_name ( ) . to_string ( ) ) )
329
- . collect ( ) ;
330
-
331
- let cache = & self . cache ;
332
- get_imports ( cache. as_ref ( ) , & motoko_info, & mut * pool. imports . borrow_mut ( ) , pool) ?;
334
+ let ( id_map, rev_id_map) = Self :: obtain_canister_maps ( pool) ;
335
+ get_imports ( self . cache . as_ref ( ) , & motoko_info, & mut * pool. imports . borrow_mut ( ) , pool) ?;
333
336
334
337
self . do_build (
335
338
pool,
336
339
canister_info,
337
340
config,
338
341
& id_map,
339
342
& rev_id_map,
340
- cache. as_ref ( ) ,
343
+ self . cache . as_ref ( ) ,
341
344
)
342
345
}
343
346
0 commit comments