Skip to content

Tracking Issue: Trait rework #552

@indietyp

Description

@indietyp

The tracking issue for #551 (2) + (3).

Traits

Existing

Proposal

RFCs: #553, #554, #555, #556, #557, #558, #559

4. Elements

currently very confusing, no concrete proposal just yet.

6. Graph Iterators

TODO: This is where more experimentation is needed, after (1), this includes all iterators like IntoNeighbours, IntoNeighboursDirected, IntoEdges, IntoEdgesDirected, IntoNeighbours, IntoNeighboursDirected, IntoNodeIdentifiers, IntoNodeReferences. #469 has already done some research on the topic.

(Includes NodeRef and EdgeRef, potentially the should be structs instead of traits, renamed to NodeEntry and EdgeEntry and could support mutable access, would close #289 in a more generic way).

The goal is to unify as much as possible (while still retaining the ability to easily call them) and make them more robust.

Open Questions

  • API breakage/deprecations (can we use crater to estimate "damage"?)
  • Verify hypothesis: Only a minority of libraries/binaries use the traits directly; instead, they use the existing algorithms.
  • What purpose has ElementIterator? It seems incomplete and prone to misuse/errors
    • This also includes Element
  • Why does GraphRef exist?

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-crateArea: Petgraph crate functionalityC-tracking-issueAn issue/PR that collects information about a broad development initiativeF-trait-reworkFeature: Trait Rework

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions