{"action":"opened","issue":{"url":"https://api.github.com/repos/JuliaGraphs/LightGraphs.jl/issues/117","labels_url":"https://api.github.com/repos/JuliaGraphs/LightGraphs.jl/issues/117/labels{/name}","comments_url":"https://api.github.com/repos/JuliaGraphs/LightGraphs.jl/issues/117/comments","events_url":"https://api.github.com/repos/JuliaGraphs/LightGraphs.jl/issues/117/events","html_url":"https://github.com/JuliaGraphs/LightGraphs.jl/issues/117","id":100151219,"number":117,"title":"RFC: Parameterized Graphs {T<:Integer}","user":{"login":"sbromberger","id":941359,"avatar_url":"https://avatars.githubusercontent.com/u/941359?v=3","gravatar_id":"","url":"https://api.github.com/users/sbromberger","html_url":"https://github.com/sbromberger","followers_url":"https://api.github.com/users/sbromberger/followers","following_url":"https://api.github.com/users/sbromberger/following{/other_user}","gists_url":"https://api.github.com/users/sbromberger/gists{/gist_id}","starred_url":"https://api.github.com/users/sbromberger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sbromberger/subscriptions","organizations_url":"https://api.github.com/users/sbromberger/orgs","repos_url":"https://api.github.com/users/sbromberger/repos","events_url":"https://api.github.com/users/sbromberger/events{/privacy}","received_events_url":"https://api.github.com/users/sbromberger/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-08-10T19:41:41Z","updated_at":"2015-08-10T19:41:41Z","closed_at":null,"body":"I've got a use case where I need the ability to reference nodes that have a range of 2^128. That is, I could represent the graph without external mapping if I were able to use 128-bit ints instead of what we currently have, which is Int (which defaults to 64 or 32 depending on system).\r\n\r\nConversely, if I know I have a small graph, it might make sense to specify an integer size < 64 or 32 bits. This would result in memory savings, and perhaps some speed.\r\n\r\nFinally, allowing parameterization can eliminate the inconsistency of relying on system default Int sizes.\r\n\r\nDrawbacks (will add more as I think of them):\r\n- Increased complexity\r\n- need to decide what happens when add_vertices!(n) produces nv(g) > chosen typemax\r\n- how we handle defaultdistance / edge weights may have to change as well\r\n\r\nAnyway - thoughts on this idea?"}}