MCPcopy Create free account
hub / github.com/Botloader/botloader / create_init

Method create_init

components/vm/src/vm.rs:93–135  ·  view source on GitHub ↗
(
        create_req: CreateRt,
        shutdown_handle: VmShutdownHandle,
        wakeup_rx: UnboundedReceiver<()>,
    )

Source from the content-addressed store, hash-verified

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,

Callers

nothing calls this directly

Calls 4

logMethod · 0.80
emit_isolate_handleMethod · 0.80
compile_scriptsMethod · 0.80
run_scriptsMethod · 0.80

Tested by

no test coverage detected