-
Notifications
You must be signed in to change notification settings - Fork 430
feat: Add map_owned and filter_map_owned for Graph and StableGraph
#863
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
feat: Add map_owned and filter_map_owned for Graph and StableGraph
#863
Conversation
starovoid
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks nice, thank you.
I just have an additional suggestion to add doc examples, first of all it would help beginners in Rust. But this is up to you, I consider this task a low priority.
… in different scenarios
d093c0d to
6f4ca20
Compare
That is a very good idea : ) I just didn't have time yet to add this yet, so I just added it to the PR #856 👍 |
…raph` (petgraph#863) This PR continues the work done in PR petgraph#794. Thus, it resolves petgraph#542. It adds `map_owned` and `filter_map_owned` methods for both `Graph` and `StableGraph` which take ownership of the respective graphs and their respective associated data in comparison to the `map` and `filter_map` counterparts which only take `&` references. Appropriate tests for this have been added. If desired, I can also add quickchecks, but this did not seem necessary. --------- Co-authored-by: Pete Hayes <pete@hayes.id.au>
…raph` (petgraph#863) This PR continues the work done in PR petgraph#794. Thus, it resolves petgraph#542. It adds `map_owned` and `filter_map_owned` methods for both `Graph` and `StableGraph` which take ownership of the respective graphs and their respective associated data in comparison to the `map` and `filter_map` counterparts which only take `&` references. Appropriate tests for this have been added. If desired, I can also add quickchecks, but this did not seem necessary. --------- Co-authored-by: Pete Hayes <pete@hayes.id.au>
…raph` (petgraph#863) This PR continues the work done in PR petgraph#794. Thus, it resolves petgraph#542. It adds `map_owned` and `filter_map_owned` methods for both `Graph` and `StableGraph` which take ownership of the respective graphs and their respective associated data in comparison to the `map` and `filter_map` counterparts which only take `&` references. Appropriate tests for this have been added. If desired, I can also add quickchecks, but this did not seem necessary. --------- Co-authored-by: Pete Hayes <pete@hayes.id.au>
## 🤖 New release * `petgraph`: 0.8.2 -> 0.8.3 (✓ API compatible changes) <details><summary><i><b>Changelog</b></i></summary><p> <blockquote> ## [0.8.3](https://github.com/petgraph/petgraph/compare/petgraph@v0.8.2...petgraph@v0.8.3) - 2025-09-28 ### Bug Fixes - Infinite `subgraph_isomorphisms_iter` for empty isomorphisms ([#780](#780)) - Algos don't work on `UndirectedAdaptor` ([#870](#870)) ([#871](#871)) - use a queue for SPFA ([#893](#893)) - `StableGraph::reverse` breaks free lists ([#890](#890)) ### Documentation - Fix examples link in README and unify typesetting of one word ([#823](#823)) - Add link to multigraph definition to isomorphism algos ([#824](#824)) - Fix auxiliary space (and time) complexity of bron-kerbosch ([#825](#825)) - Fix Typo in Operator Module Documentation ([#831](#831)) - Sync the crate feature flags in the README and docs ([#832](#832)) - Remove all \[Generic\] tags from algo docstrings ([#835](#835)) - Fix typos in comments ([#836](#836)) - Revamp CONTRIBUTING.md ([#833](#833)) - Update `GraphMap` link in README ([#857](#857)) - Add doc comment for `Dot::with_attr_getters` ([#850](#850)) - Specify iteration order for neighbors and edges and their variants ([#790](#790)) - Collection of Doc fixes ([#856](#856)) ### New Features - Add `into_nodes_edges_iters` to `StableGraph` ([#841](#841)) - Add methods to reserve & shrink `StableGraph` capacity ([#846](#846)) - Add Dinic's Maximum Flow Algorithm ([#739](#739)) - make Csr::from_sorted_edges generic over edge type and properly increase edge_count in Csr::from_sorted_edges ([#861](#861)) - Add `map_owned` and `filter_map_owned` for `Graph` and `StableGraph` ([#863](#863)) - Add dijkstra::with_dynamic_goal ([#855](#855)) - Fix self-loop bug in all_simple_paths and enable multiple targets ([#865](#865)) - mark petgraph::dot::Dot::graph_fmt as public ([#866](#866)) - Add bidirectional Dijkstra algorithm ([#782](#782)) ### Performance - Make A* tie break on lower h-values ([#882](#882)) ### Refactor - add examples for scc algorithms and reorganize into dedicated module ([#830](#830)) - Remove unnecessary trait bounds from impls/methods ([#828](#828)) - replace uses of 'crate::util::zip' with 'core::iter::zip' ([#849](#849)) - Fix clippy (and other) lints ([#851](#851)) - Cleanup repo ([#854](#854)) - replace crate::util::enumerate with Iterator::enumerate ([#881](#881)) ### Testing - Add dependency list for 'quickcheck' feature ([#822](#822)) - Fix feature cfg capitalization in doctest ([#852](#852)) </blockquote> </p></details> --- This PR was generated with [release-plz](https://github.com/release-plz/release-plz/). --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Egor Starovoitov <52821033+starovoid@users.noreply.github.com>
This PR continues the work done in PR #794. Thus, it resolves #542.
It adds
map_ownedandfilter_map_ownedmethods for bothGraphandStableGraphwhich take ownership of the respective graphs and their respective associated data in comparison to themapandfilter_mapcounterparts which only take&references.Appropriate tests for this have been added. If desired, I can also add quickchecks, but this did not seem necessary.