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>>>;