in h3.go [972:996]
func cellsFromC(chs []C.H3Index, prune, refit bool) []Cell {
// OPT: This could be more efficient if we unsafely cast the C array to a
// []H3Index.
out := make([]Cell, 0, len(chs))
for i := range chs {
if prune && chs[i] <= 0 {
continue
}
out = append(out, Cell(chs[i]))
}
if refit {
// Some algorithms require a maximum sized array, but only use a subset
// of the memory. refit sizes the slice to the last non-empty element.
for i := len(out) - 1; i >= 0; i-- {
if out[i] == 0 {
out = out[:i]
}
}
}
return out
}