# mod.rs - source
Source of the Rust file `maplibre/src/render/graph/mod.rs`.
Keywords: rust, rustlang, rust-lang

     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

    mod context;
    mod edge;
    mod graph;
    mod node;
    mod node_slot;

    pub use context::*;
    pub use edge::*;
    pub use graph::*;
    pub use node::*;
    pub use node_slot::*;

    use thiserror::Error;

    #[derive(Error, Debug, Eq, PartialEq)]
    pub enum RenderGraphError {
        #[error("node does not exist")]
        InvalidNode(NodeLabel),
        #[error("output node slot does not exist")]
        InvalidOutputNodeSlot(SlotLabel),
        #[error("input node slot does not exist")]
        InvalidInputNodeSlot(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("attempted to remove an edge that does not exist")]
        EdgeDoesNotExist(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,
        },
    }