(
create_req: CreateRt,
shutdown_handle: VmShutdownHandle,
wakeup_rx: UnboundedReceiver<()>,
)
| 91 | |
| 92 | #[instrument(skip_all)] |
| 93 | async fn create_init( |
| 94 | create_req: CreateRt, |
| 95 | shutdown_handle: VmShutdownHandle, |
| 96 | wakeup_rx: UnboundedReceiver<()>, |
| 97 | ) -> Self { |
| 98 | let script_store = ScriptsStateStore::new_rc(); |
| 99 | |
| 100 | let module_manager = Rc::new(ModuleManager { |
| 101 | module_map: create_req.extension_modules, |
| 102 | guild_scripts: script_store.clone(), |
| 103 | }); |
| 104 | |
| 105 | let sandbox = Self::create_isolate( |
| 106 | &create_req.extension_factory, |
| 107 | module_manager.clone(), |
| 108 | script_store.clone(), |
| 109 | shutdown_handle.clone(), |
| 110 | ); |
| 111 | |
| 112 | let mut rt = Self { |
| 113 | guild_logger: create_req.guild_logger, |
| 114 | rx: create_req.rx, |
| 115 | tx: create_req.tx, |
| 116 | script_store, |
| 117 | |
| 118 | shutdown_handle, |
| 119 | runtime: sandbox, |
| 120 | extension_factory: create_req.extension_factory, |
| 121 | module_manager, |
| 122 | wakeup_rx, |
| 123 | }; |
| 124 | |
| 125 | rt.guild_logger.log(CreateLogEntry::info( |
| 126 | "starting fresh guild vm...".to_string(), |
| 127 | )); |
| 128 | |
| 129 | rt.emit_isolate_handle(); |
| 130 | |
| 131 | rt.compile_scripts(&create_req.load_scripts); |
| 132 | rt.run_scripts(&create_req.load_scripts).await; |
| 133 | |
| 134 | rt |
| 135 | } |
| 136 | |
| 137 | async fn create_run( |
| 138 | create_req: CreateRt, |
nothing calls this directly
no test coverage detected