1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
pub mod base; mod command; mod edge; mod graph; mod node; mod node_slot; mod nodes; mod schedule; mod system; pub use command::*; pub use edge::*; pub use graph::*; pub use node::*; pub use node_slot::*; pub use nodes::*; pub use schedule::*; pub use system::*; use thiserror::Error; #[derive(Error, Debug, Eq, PartialEq)] pub enum RenderGraphError { #[error("node does not exist")] InvalidNode(NodeLabel), #[error("node slot does not exist")] InvalidNodeSlot(SlotLabel), #[error("node does not match the given type")] WrongNodeType, #[error("attempted to connect a node output slot to an incompatible input node slot")] MismatchedNodeSlots { output_node: NodeId, output_slot: usize, input_node: NodeId, input_slot: usize, }, #[error("attempted to add an edge that already exists")] EdgeAlreadyExists(Edge), #[error("node has an unconnected input slot")] UnconnectedNodeInputSlot { node: NodeId, input_slot: usize }, #[error("node has an unconnected output slot")] UnconnectedNodeOutputSlot { node: NodeId, output_slot: usize }, #[error("node input slot already occupied")] NodeInputSlotAlreadyOccupied { node: NodeId, input_slot: usize, occupied_by_node: NodeId, }, }