pub fn shortest_path_using_outgoing( from_id: &str, to_id: &str, kind: Option<&str>, max_hops: Option<usize>, outgoing_edges: impl FnMut(&str, Option<&str>) -> Result<Vec<GraphEdge>, Error>, ) -> Result<Option<GraphPath>, Error>