# LightGraphs users (and other interested parties): please opine below

**URL:** <https://discourse.julialang.org/t/lightgraphs-users-and-other-interested-parties-please-opine-below/37660>\
**Category:** Graphs\
**Tags:** question, proposal, lightgraphs, poll, survey\
**Created:** [April 15, 2020, 6:45pm UTC](https://discourse.julialang.org/t/lightgraphs-users-and-other-interested-parties-please-opine-below/37660 "2020-04-15T18:45:22Z")\
**Posts on this page:** 1\
**Showing post:** 12

<div class="post-metadata">

**Author:** ![Zach\_Christensen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zach_christensen/32/7220_2.png) [@Zach\_Christensen](https://discourse.julialang.org/u/Zach_Christensen)\
**Post date:** [April 16, 2020, 12:15am UTC](https://discourse.julialang.org/t/lightgraphs-users-and-other-interested-parties-please-opine-below/37660/12 "2020-04-16T00:15:57Z")

</div>

I looked at the code a bit and here is one more idea.

```julia
struct PathParams{A,names,T}
    algo::A
    params::NamedTuple{names,T}
end

function Base.getproperty(pp::PathParams, s::Symbol)
    return getproperty(getfield(pp, :params), s)
end

struct Dijkstra end

function PathParams(algo::Dijkstra, all_paths=false, track_vertices=false, maxsdist=typemax(Float64))
    PathParams( algo, (all_paths=all_paths, track_vertices=track_vertices, maxsdist=maxsdist))
end

function shortest_paths(g::AbstractGraph, srcs::Vector{U}, distmx::AbstractMatrix{T}, alg::PathParams{Dijkstra}) where {T, U<:Integer}
...
end

```

This gives you one `Dijkstra` type and shouldn’t require changing the `shortest_paths` code past the the methods head because the same exact fields are available using `getproperty`

---

_[View the full topic](https://discourse.julialang.org/t/lightgraphs-users-and-other-interested-parties-please-opine-below/37660)._
