36 lines
725 B
Rust
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!();
|
|
}
|