Every verb is a batch over a RowsView: a base pointer, a row count, the values per row, the byte pitch between consecutive rows, and the scalar kind they hold.
A single vector is a one-row matrix, so nothing is reshaped and nothing is copied.
import NumKong
import USearch
let index = try DenseIndex.initRam(DenseOptions(dimensions: 3, metric: .angular, quantization: .bf16))
try index.reserve(2)
let vectors = try Tensor.fromArray([Float](arrayLiteral: 0.3, 0.5, 1.2, 0.4, 0.2, 1.2), rows: 2, columns: 3)
try index.insert(keys: [42, 43], vectors: RowsView(vectors)) // the calling thread
let query = RowsView(try Tensor.fromArray([Float](arrayLiteral: 0.3, 0.5, 1.2), rows: 1, columns: 3))
let executor = try Executor.forRam()
let arena = try Arena(on: executor) // where the matches land
let matches = try index.on(executor).search(query, wanted: 10, arena: arena) // the same verb, on an executor
assert(matches[0][0].key == Key(42))