MCPcopy Create free account
hub / github.com/Moosync/Moosync / handle_runner_command

Method handle_runner_command

src-tauri/extensions/src/ext_runner.rs:709–752  ·  view source on GitHub ↗
(
        &mut self,
        command: RunnerCommand,
    )

Source from the content-addressed store, hash-verified

707
708 #[tracing::instrument(level = "debug", skip(self))]
709 pub async fn handle_runner_command(
710 &mut self,
711 command: RunnerCommand,
712 ) -> MoosyncResult<RunnerCommandResp> {
713 tracing::info!("Got runner command {:?}", command);
714 let ret = match command {
715 RunnerCommand::GetInstalledExtensions => {
716 let extensions_map = self.extensions_map.lock().await;
717 let extensions = extensions_map
718 .values()
719 .map(|e| e.into())
720 .collect::<Vec<ExtensionDetail>>();
721 tracing::debug!("Extension map: {:?}, {:?}", self.extensions_map, extensions);
722 RunnerCommandResp::ExtensionList(extensions)
723 }
724 RunnerCommand::FindNewExtensions => {
725 self.spawn_extensions().await;
726 RunnerCommandResp::Empty()
727 }
728 RunnerCommand::GetExtensionIcon(p) => RunnerCommandResp::ExtensionIcon(
729 self.get_extensions(p.package_name)
730 .await
731 .first()
732 .map(|e| e.icon.clone()),
733 ),
734 RunnerCommand::ToggleExtensionStatus(_) => todo!(),
735 RunnerCommand::RemoveExtension(p) => {
736 self.remove_extension(&p.package_name).await;
737 RunnerCommandResp::Empty()
738 }
739 RunnerCommand::StopProcess => {
740 todo!()
741 }
742 RunnerCommand::GetDisplayName(p) => RunnerCommandResp::ExtensionIcon(
743 self.get_extensions(p.package_name)
744 .await
745 .first()
746 .map(|e| e.name.clone()),
747 ),
748 };
749
750 tracing::debug!("Got runner command response {:?}", ret);
751 Ok(ret)
752 }
753
754 #[tracing::instrument(level = "debug", skip(self))]
755 pub(crate) fn handle_main_command_reply(

Callers 4

send_remove_extensionMethod · 0.80
find_new_extensionsMethod · 0.80
get_extension_iconMethod · 0.80

Calls 4

spawn_extensionsMethod · 0.80
get_extensionsMethod · 0.80
cloneMethod · 0.80
remove_extensionMethod · 0.45

Tested by

no test coverage detected