bitwalker / libgraph

A graph data structure library for Elixir projects
MIT License
524 stars 75 forks source link

Save metadata for vertices and edges #54

Open egze opened 2 years ago

egze commented 2 years ago

My use case is to build a Graph from data coming from a DB. When there are changes to it, I want to persist it back to DB.

For this to work, I am currently abusing the labels from vertices and edges. For vertex it is a Keyword list and for edges it is a map.

It would be much more convenient if there was a metadata field for both and a function to set it. Something like:

Graph.put_metadata(g, v, %{id: 1234, comment: "some comment"}) # sets metadata for vertex
Graph.put_metadata(g, v1, v2, l, %{id: 1234, comment: "some comment"}) # sets metadata for edge

I can create a PR if this is a worthwhile feature.

cjbottaro commented 1 year ago

I would also like to attach arbitrary metadata to edges!

zachallaun commented 1 year ago

This would be very nice to have. I'm similarly abusing labels to store metadata on edges.

Papipo commented 1 year ago

I can create a PR if this is a worthwhile feature.

It definitely is.