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