flarrow_api/
node.rs

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