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