Skip to content

Commit 2687f9b

Browse files
authored
feat: zero-copy cast for edgesFromC (#111)
1 parent 21ca5eb commit 2687f9b

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

h3.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1392,16 +1392,14 @@ func vertexesFromC(chs []C.H3Index) []Vertex {
13921392
}
13931393

13941394
func edgesFromC(chs []C.H3Index) []DirectedEdge {
1395-
out := make([]DirectedEdge, 0, len(chs))
1396-
1397-
for i := range chs {
1398-
if chs[i] <= 0 {
1395+
in := unsafe.Slice((*DirectedEdge)(unsafe.Pointer(&chs[0])), len(chs))
1396+
out := in[:0]
1397+
for i := range in {
1398+
if in[i] <= 0 {
13991399
continue
14001400
}
1401-
1402-
out = append(out, DirectedEdge(chs[i]))
1401+
out = append(out, in[i])
14031402
}
1404-
14051403
return out
14061404
}
14071405

0 commit comments

Comments
 (0)