use iced::{Element, Point}; use crate::socket::{Socket,SocketData}; #[derive(Default)] pub struct Nodes { pub nodes: Vec, pub sockets: Vec } impl Nodes { pub fn update(&mut self, message: NodeMessage) { todo!(); } pub fn view(&self) -> Element<'_, crate::Message> { todo!(); } } pub enum NodeMessage { MoveNode(usize, Point), SocketDragStart(usize), SocketDragEnd(usize), } pub struct Node { pub name: String, pub inputs: Vec, pub outputs: Vec, pub position: Point, pub function: Box Vec> } pub fn node(from: &Node, node_index: usize) -> Element<'_,crate::Message> { todo!(); }