Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

Breaking Changes

  • The safety contract of IndexType has been changed. It is now required that IndexType::from_usize and IndexType::to_usize are inverses of each other and that no wrapping must take place. This is a breaking change for any user-defined IndexType implementations.
  • The underlying IndexType must now implement Unsigned and AtMostUsize from the funty crate. This is a breaking change for any user-defined IndexType implementations.

Changed

  • The implementation of VisitMap for FixedBitSet has been relaxed. Instead of restricting to IndexType it now only requires SafeCast<usize>.

Added

  • Moved petgraph::visit to petgraph-core
  • Moved petgraph::EdgeType to petgraph-core
  • Moved petgraph::Direction to petgraph-core
  • Moved petgraph::Incoming to petgraph-core
  • Moved petgraph::Outgoing to petgraph-core
  • Moved petgraph::EdgeDirection to petgraph-core
  • Moved petgraph::graph::IndexType to petgraph-core
  • Moved petgraph::IntoWeightedEdge to petgraph-core
  • Moved petgraph::macros to petgraph-core
  • IndexMap now implements VisitMap
  • New transitional trait SafeCast for casting between usize and IndexType
  • New transitional trait FromIndexType for casting from IndexType to NodeIndex/EdgeIndex
    • This trait is not covered by From, because it allows for generic functions that switch between different NodeIndex types easily, without needing to specify the IndexType explicitly.
  • New transitional trait IntoIndexType for casting from NodeIndex/EdgeIndex to IndexType
    • This trait is not covered by Into, because it allows for generic functions that switch between different NodeIndex types easily, without needing to specify the IndexType explicitly.

Deprecations

  • petgraph-core::visit is deprecated in favor of a set of traits in petgraph-core
  • IndexType::index is deprecated in favor of IndexType::to_usize
  • IndexType::new is deprecated in favor of IndexType::from_usize