Make zero function not mandatory for AbstractGraph interface #85
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current documentation declares the
zero
function as mandatory for any implementation ofAbstractGraph
. This function takes a graph (type) and constructs a graph of the same type with zero vertices. I propose to remove that requirement. My reasons for that arezero
for any graph type assumes that it is possible to have such a graph without any vertices. But for some graph types it is not clear, that such a graph even exists, for example some wrapper types that take some existing object and return a graph view of that object, parametrized graphs such as hypercubes (such a hypercube would have dimension -infinity), or certain geometric graphs.add_vertex!
andadd_edge!
, but this is not required for all graph types.Removing this requirement should therefore make it easier to create custom subtypes of
AbstractGraph
.