Skip to content

Commit

Permalink
More helpful error messages
Browse files Browse the repository at this point in the history
  • Loading branch information
ErikNatanael committed Jan 17, 2024
1 parent 5bca218 commit af50af9
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 34 deletions.
60 changes: 30 additions & 30 deletions knyst/src/graph.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2174,10 +2174,10 @@ impl Graph {
Ok(_) => {
return Ok(());
}
Err(e) => match &e {
ConnectionError::NodeNotFound => {
Err(e) => match e {
ConnectionError::NodeNotFound(c) => {
// The correct graph was found, but the node wasn't in it.
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(c));
}
// We continue trying other graphs
ConnectionError::GraphNotFound(_connection) => (),
Expand All @@ -2203,7 +2203,7 @@ impl Graph {
to_index_offset,
} => {
if source.graph_id() != sink.graph_id() {
return Err(ConnectionError::DifferentGraphs);
return Err(ConnectionError::DifferentGraphs(connection.clone()));
}
if source.graph_id() != self.id {
return try_disconnect_in_child_graphs(connection.clone());
Expand All @@ -2218,16 +2218,16 @@ impl Graph {
return Err(ConnectionError::SameNode);
}
if !self.get_nodes().contains_key(source_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}
if !self.get_nodes().contains_key(sink_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}
if self.node_keys_pending_removal.contains(&source_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}
if self.node_keys_pending_removal.contains(&sink_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}
let to_index = if input_index.is_some() {
if let Some(i) = input_index {
Expand Down Expand Up @@ -2354,10 +2354,10 @@ impl Graph {
return try_disconnect_in_child_graphs(connection.clone());
};
if !self.get_nodes().contains_key(sink_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}
if self.node_keys_pending_removal.contains(&sink_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}

let input = if input_index.is_some() {
Expand Down Expand Up @@ -2414,10 +2414,10 @@ impl Graph {
return try_disconnect_in_child_graphs(connection.clone());
};
if !self.get_nodes().contains_key(source_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}
if self.node_keys_pending_removal.contains(&source_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}
if channels + to_index > self.num_outputs {
return Err(ConnectionError::DestinationChannelOutOfBounds);
Expand Down Expand Up @@ -2474,10 +2474,10 @@ impl Graph {
return try_disconnect_in_child_graphs(connection.clone());
};
if !self.get_nodes().contains_key(sink_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}
if self.node_keys_pending_removal.contains(&sink_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}
let to_index = if to_index.is_some() {
if let Some(i) = to_index {
Expand Down Expand Up @@ -2598,10 +2598,10 @@ impl Graph {
Ok(_) => {
return Ok(());
}
Err(e) => match &e {
ConnectionError::NodeNotFound => {
Err(e) => match e {
ConnectionError::NodeNotFound(c) => {
// The correct graph was found, but the node wasn't in it.
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(c));
}
// We continue trying other graphs
ConnectionError::GraphNotFound(_connection) => (),
Expand All @@ -2626,7 +2626,7 @@ impl Graph {
to_index_offset,
} => {
if source.graph_id() != sink.graph_id() {
return Err(ConnectionError::DifferentGraphs);
return Err(ConnectionError::DifferentGraphs(connection.clone()));
}
if source.graph_id != self.id {
return try_connect_to_graphs(connection.clone());
Expand All @@ -2643,16 +2643,16 @@ impl Graph {
return Err(ConnectionError::SameNode);
}
if !self.get_nodes().contains_key(source_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}
if !self.get_nodes().contains_key(sink_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}
if self.node_keys_pending_removal.contains(&source_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}
if self.node_keys_pending_removal.contains(&sink_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}
let to_index = if input_index.is_some() {
if let Some(i) = input_index {
Expand Down Expand Up @@ -2763,10 +2763,10 @@ impl Graph {
return try_connect_to_graphs(connection.clone());
};
if !self.get_nodes().contains_key(sink_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}
if self.node_keys_pending_removal.contains(&sink_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}

let input = if input_index.is_some() {
Expand Down Expand Up @@ -2823,10 +2823,10 @@ impl Graph {
return try_connect_to_graphs(connection.clone());
};
if !self.get_nodes().contains_key(source_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}
if self.node_keys_pending_removal.contains(&source_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}

let num_source_outputs = self
Expand Down Expand Up @@ -2882,10 +2882,10 @@ impl Graph {
return try_connect_to_graphs(connection.clone());
};
if !self.get_nodes().contains_key(sink_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}
if self.node_keys_pending_removal.contains(&sink_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}

// Find the index number, potentially from the label
Expand Down Expand Up @@ -2941,10 +2941,10 @@ impl Graph {
return try_connect_to_graphs(connection.clone());
};
if !self.get_nodes().contains_key(node_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}
if self.node_keys_pending_removal.contains(&node_key) {
return Err(ConnectionError::NodeNotFound);
return Err(ConnectionError::NodeNotFound(connection.clone()));
}

self.recalculation_required = true;
Expand Down
8 changes: 4 additions & 4 deletions knyst/src/graph/connection.rs
Original file line number Diff line number Diff line change
Expand Up @@ -617,12 +617,12 @@ impl Connection {
/// Error making a connection inside a [`Graph`]
#[derive(thiserror::Error, Debug, PartialEq)]
pub enum ConnectionError {
#[error("The nodes that you are trying to connect are in different graphs. Nodes can only be connected within a graph.")]
DifferentGraphs,
#[error("The nodes that you are trying to connect are in different graphs. Nodes can only be connected within a graph. Connection: {0}")]
DifferentGraphs(Connection),
#[error("The graph containing the NodeId provided was not found. The node itself may or may not exist. Connection: {0}")]
GraphNotFound(Connection),
#[error("The NodeId does not exist. The Node may have been freed already.")]
NodeNotFound,
#[error("The NodeId does not exist. The Node may have been freed already. Connection: {0}")]
NodeNotFound(Connection),
#[error("The given input label (`{0}`) is not available for the given node.")]
InvalidInputLabel(&'static str),
#[error("The given output label (`{0}`) is not available for the given node.")]
Expand Down

0 comments on commit af50af9

Please sign in to comment.