folk_plugin_process/
lib.rs1pub mod config;
2pub mod plugin;
3pub mod supervisor;
4
5use anyhow::Result;
6use folk_api::{Plugin, PluginFactory, ServerPluginWrapper};
7use serde_json::Value;
8
9pub use config::ProcessConfig;
10pub use plugin::ProcessPlugin;
11
12struct ProcessPluginFactory;
13
14impl PluginFactory for ProcessPluginFactory {
15 fn create(&self, config: Value) -> Result<Box<dyn Plugin>> {
16 let config: ProcessConfig = serde_json::from_value(config).unwrap_or_default();
17 Ok(Box::new(ServerPluginWrapper::new(ProcessPlugin::new(
18 config,
19 ))))
20 }
21}
22
23pub fn folk_plugin_factory() -> Box<dyn PluginFactory> {
24 Box::new(ProcessPluginFactory)
25}