JuliaGraphs / JuliaGraphs/Graphs.jl
IsMutable trait
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 538
- Forks
- 128
- Avg merge
- 10h 25m
- Merged PRs (30d)
- 2
Description
#88, #89, #85 raise the need to have a specific interface for mutable graph.
This is useful to explicit the output type of the graph for function returning another graph. As a mutable graph could model any graph structure, the output of these functions would just be a graph of the same type as the input graph. Would fall under the IsMutable trait the graphs implementing [add|remove]_vertex!, [add|remove]_edge! and some non mandatory ones like zero, [add|remove]_vertices!, [add|remove]_edges! (zero could eventually be mandatory).
Maybe that for non mutable graph, we could add a method which would precise the expected return type of the graph under mutation.
There are still some corner cases like functions taking as input an undirected graph and returning a directed one, for which this trait will not help to get it generic.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading issues #88, #89, and #85 to understand the need for an IsMutable graph interface. Define the supported mutation methods and expected graph return-type behavior, including the unresolved directed-versus-undirected corner case; done means the interface scope and generic behavior are agreed and documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100