flarrow_url_scheme/
plugin.rs

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