Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Debug and Clone for iterators #418

Merged
merged 8 commits into from
Apr 25, 2021
Merged

Implement Debug and Clone for iterators #418

merged 8 commits into from
Apr 25, 2021

Conversation

TheZalli
Copy link
Collaborator

I wanted to implement the Debug and Clone traits for graph::Externals (#416), but when looking at the source code I noticed that many iterator types didn't implement them either even when they could. So I went over every iterator type that I could find and added those implementations to where I could.

3 iterators that I found used an internal iterator that didn't implement them both so I skipped them but added a comment. They could be solved by making them a custom iterator but I feel like that's out of scope for this PR.

Fixes #416

Copy link
Member

@ABorgna ABorgna left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

adj::EdgeIndices is missing a derive.

Lgtm. If we detect any other missing trait later it can be added in a minor revision.

@TheZalli
Copy link
Collaborator Author

@ABorgna thanks! Seems like I missed that, but now it's there.

@ABorgna ABorgna merged commit 2f2f318 into petgraph:master Apr 25, 2021
teuron pushed a commit to teuron/petgraph that referenced this pull request Oct 9, 2022
* Implement Clone and Debug for `graph::Externals` and `stable_graph::Externals` iterators.

* Add Debug and Clone to as many iterators in `graph`, `stable_graph` and `graphmap` as I could

* Add Debug and Clone to iterators in `matrix_graph`

* Add Debug and Clone to iterators in `adj`, `csr` and `data`

* Add Debug and Clone to iterators in `algo` and `visit`

* Add Debug and Clone to `stable_graph::NodeReferences`

* Add comments to few iterators that I couldn't implement Debug and Clone on

* Add Debug and Clone to `adj::EdgeIndices`

Co-authored-by: Zalli <>
teuron pushed a commit to teuron/petgraph that referenced this pull request Oct 9, 2022
* Implement Clone and Debug for `graph::Externals` and `stable_graph::Externals` iterators.

* Add Debug and Clone to as many iterators in `graph`, `stable_graph` and `graphmap` as I could

* Add Debug and Clone to iterators in `matrix_graph`

* Add Debug and Clone to iterators in `adj`, `csr` and `data`

* Add Debug and Clone to iterators in `algo` and `visit`

* Add Debug and Clone to `stable_graph::NodeReferences`

* Add comments to few iterators that I couldn't implement Debug and Clone on

* Add Debug and Clone to `adj::EdgeIndices`

Co-authored-by: Zalli <>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Struct petgraph::graph::Externals does not implement Clone
2 participants