SwiftGraph v3.0.0 Release Notes
Release Date: 2019-04-12 // about 5 years ago-
- 🔨 This is an API breaking refactor
- This version requires Swift 5.0 (Xcode 10.2)
Graph
no longer conforms toclass
so structs can beGraph
s (@davecom)Graph
andEdge
are nowCodable
meaning all implementations must be as well including all vertex types, leading to the removal ofCodableUnweightedGraph
andCodableWeightedGraph
, which are now unnecessary (@davecom)- 🆕 New CONTRIBUTORS.md file containing some history (@davecom)
- 🆕 New search traversal methods (@ferranpujolcamins)
- 👌 Improvements to
UniqueElementsGraph
(@ferranpujolcamins) - ✅ Useful constructors for testing (@ferranpujolcamins)
- 👌 Improvements to
UniqueElementsGraph
tests (@ferranpujolcamins) - 🔨 Refactor many aspects of
UnweightedGraph
andWeightedGraph
into conditional conformance extensions toGraph
and new protocols (@ferranpujolcamins) - ➕ Add new performance tests (@ferranpujolcamins)
- ➕ Add direction back to
Edge
(@ferranpujolcamins)
Previous changes from v2.0.0
-
- 🔨 This is an API breaking refactor
- This version requires Swift 4.2 (Xcode 10.1)
Graph
is now a protocol instead of a class- 🆓
edgesToVertices()
is now a method onGraph
instead of a free function - The
Edge
protocol has been significantly simplifieid UnweightedEdge
andWeightedEdge
are nowCodable
- 👍 Subclasses of
Graph
CodableUnweightedGraph
andCodableWeightedGraph
provide serialization support to JSON and anything elseCodable
supports (thanks for the help, @yoiang) - Experimental subclass of
UnweightedGraph
,UniqueElementsGraph
provides a union operation and guarantees no duplicate vertices & edges in a graph (thanks @ferranpujolcamins) - Cycle detector method that returns edges (thanks @ZevEisenberg)