nonagon-infinity/src/node.rs

36 lines
725 B
Rust

use iced::{Element, Point};
use crate::socket::{Socket,SocketData};
#[derive(Default)]
pub struct Nodes {
pub nodes: Vec<Node>,
pub sockets: Vec<Socket>
}
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<usize>,
pub outputs: Vec<usize>,
pub position: Point,
pub function: Box<dyn Fn([&SocketData]) -> Vec<SocketData>>
}
pub fn node(from: &Node, node_index: usize) -> Element<'_,crate::Message> {
todo!();
}