flarrow_url_scheme/
plugin.rs1use 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>>>;