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>>>;