flarrow_file_ext/
plugin.rs

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