For scalar types we can continue to simply copy numbers. However, for larger data we will want to have Nim wrapper types that allow access to the underlying data of the SEXP without copying.
A sketch:
type
NumericVector[T] = object
obj: SEXP
proc `[]`[T](v: NumericVector[T], idx: int): T =
result = v.obj.accessArray(idx) # where accessArray accesses the data using DATAPTR
...
Need to learn what other types of interest we might want to wrap other than vectors.
For scalar types we can continue to simply copy numbers. However, for larger data we will want to have Nim wrapper types that allow access to the underlying data of the
SEXP
without copying.A sketch:
Need to learn what other types of interest we might want to wrap other than vectors.