Skip to content

Conversation

@RaoulLuque
Copy link
Member

@RaoulLuque RaoulLuque commented Jul 31, 2025

This PR continues the work done in PR #794. Thus, it resolves #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.

@RaoulLuque RaoulLuque added A-crate Area: Petgraph crate functionality C-feature-accepted Category: A feature request that has been accepted pending implementation S-waiting-on-review Status: Awaiting review from the assignee but also other interested parties labels Jul 31, 2025
@RaoulLuque RaoulLuque added this to the 0.8.3 milestone Jul 31, 2025
Copy link
Collaborator

@starovoid starovoid left a 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.

@starovoid starovoid mentioned this pull request Sep 3, 2025
@starovoid starovoid force-pushed the continue_graph_map_owned branch from d093c0d to 6f4ca20 Compare September 3, 2025 06:33
@starovoid starovoid added this pull request to the merge queue Sep 3, 2025
Merged via the queue into petgraph:master with commit 4cac1a3 Sep 3, 2025
11 checks passed
@github-actions github-actions bot mentioned this pull request Aug 26, 2025
@RaoulLuque
Copy link
Member Author

RaoulLuque commented Sep 14, 2025

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.

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 👍

RaoulLuque added a commit to RaoulLuque/petgraph that referenced this pull request Sep 21, 2025
…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>
RaoulLuque added a commit to cactusdualcore/petgraph that referenced this pull request Sep 21, 2025
…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>
RaoulLuque added a commit to RaoulLuque/petgraph that referenced this pull request Sep 21, 2025
…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>
@RaoulLuque RaoulLuque deleted the continue_graph_map_owned branch September 22, 2025 07:24
github-merge-queue bot pushed a commit that referenced this pull request Sep 30, 2025
## 🤖 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-crate Area: Petgraph crate functionality C-feature-accepted Category: A feature request that has been accepted pending implementation S-waiting-on-review Status: Awaiting review from the assignee but also other interested parties

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add another map method taking self instead of &self

3 participants