github.com/LdDl/ch@v1.7.8/vertex_alternatives.go (about) 1 package ch 2 3 type VertexAlternative struct { 4 Label int64 5 AdditionalDistance float64 6 } 7 8 type vertexAlternativeInternal struct { 9 vertexNum int64 10 additionalDistance float64 11 } 12 13 const vertexNotFound = -1 14 15 func (graph *Graph) vertexAlternativeToInternal(alternative VertexAlternative) vertexAlternativeInternal { 16 vertexNum, ok := graph.mapping[alternative.Label] 17 if !ok { 18 vertexNum = vertexNotFound 19 } 20 return vertexAlternativeInternal{ 21 vertexNum: vertexNum, 22 additionalDistance: alternative.AdditionalDistance, 23 } 24 } 25 26 func (graph *Graph) vertexAlternativesToInternal(alternatives []VertexAlternative) []vertexAlternativeInternal { 27 result := make([]vertexAlternativeInternal, 0, len(alternatives)) 28 for _, alternative := range alternatives { 29 result = append(result, graph.vertexAlternativeToInternal(alternative)) 30 } 31 return result 32 }