iridis_url_scheme/
plugin.rs1use std::sync::Arc;
4
5use crate::prelude::{thirdparty::tokio::task::JoinHandle, *};
6
7pub trait UrlSchemePlugin: Send + Sync {
9    #[allow(clippy::new_ret_no_self)]
11    fn new() -> JoinHandle<Result<Box<dyn UrlSchemePlugin>>>
12    where
13        Self: Sized;
14
15    fn target(&self) -> Vec<String>;
17
18    #[allow(clippy::too_many_arguments)]
20    fn load(
21        &self,
22        url: Url,
23
24        inputs: Inputs,
25        outputs: Outputs,
26        queries: Queries,
27        queryables: Queryables,
28        configuration: serde_yml::Value,
29
30        file_ext: Arc<FileExtManager>,
31    ) -> JoinHandle<Result<RuntimeNode>>;
32}
33
34pub type DynamicallyLinkedUrlSchemePluginInstance =
36    fn() -> JoinHandle<Result<Box<dyn UrlSchemePlugin>>>;