(sctx *super.Context, typ super.Type, tags []uint32, vecs []vector.Any)
| 131 | } |
| 132 | |
| 133 | func mergeSameTypeVecs(sctx *super.Context, typ super.Type, tags []uint32, vecs []vector.Any) vector.Any { |
| 134 | // XXX This is going to be slow. At some point would nice to write a native |
| 135 | // merge of same type vectors. |
| 136 | counts := make([]uint32, len(vecs)) |
| 137 | vb := vector.NewBuilder(typ) |
| 138 | var b scode.Builder |
| 139 | for _, tag := range tags { |
| 140 | b.Truncate() |
| 141 | vecs[tag].Serialize(&b, counts[tag]) |
| 142 | vb.Write(b.Bytes().Body()) |
| 143 | counts[tag]++ |
| 144 | } |
| 145 | return vb.Build(sctx) |
| 146 | } |