Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Default structs to define #3

Open
gdalle opened this issue Jun 28, 2023 · 2 comments
Open

Default structs to define #3

gdalle opened this issue Jun 28, 2023 · 2 comments
Labels
question Further information is requested

Comments

@gdalle
Copy link
Member

gdalle commented Jun 28, 2023

In addition to the interface, this package should probably contain basic implementations for the most common types of graphs.

Here's a possible list:

Name Vertices Metadata
(Simple)(Di)Graph 1:n none
(Simple)Weighted(Di)Graph 1:n edge weights
(Simple)Meta(Di)Graph 1:n vertex and edge
(Simple)VertexSafe(Di)Graph non-contiguous integers none

For each one, we will provide both the simple version (no multi-edges, possible self-loops) and the generic version.

@filchristou
Copy link

I would really suggest to try our best to make MetaGraphs.jl obselete. So this would mean that the implementation of a MetaGraph should be type-stable for performance but also fallback to a generic struct using Any types for flexibility.

@gdalle
Copy link
Member Author

gdalle commented Jul 5, 2023

I'm not sure yet how it will look like, but I don't think a fallback is a great idea. I think if users want metadata of type Any, they have to say it explicitly. Strictly typed metadata is also a safeguard against bad code

@gdalle gdalle added the question Further information is requested label Sep 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants