use crate::prelude::*;
pub type NodeName = String;
#[derive(Debug, Clone, PartialEq)]
pub enum NodeLayer {
Source,
Bronze,
Silver,
Gold,
}
#[derive(Clone)]
pub struct ResolvedNode {
pub name: NodeName,
pub layer: NodeLayer,
pub df: CustomDataFrame,
}
pub type NodeFn = Box<
dyn Fn(NodeRegistry) -> Pin<Box<dyn Future<Output = ElusionResult<CustomDataFrame>> + Send>>
+ Send
+ Sync
>;
pub struct Node {
pub name: NodeName,
pub layer: NodeLayer,
pub dependencies: Vec<NodeName>, pub execute: NodeFn,
}
impl std::fmt::Debug for Node {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("Node")
.field("name", &self.name)
.field("layer", &self.layer)
.field("dependencies", &self.dependencies)
.finish()
}
}