in r/src/materialize.c [312:343]
int nanoarrow_materialize(struct RConverter* converter, SEXP converter_xptr) {
struct ArrayViewSlice* src = &converter->src;
struct VectorSlice* dst = &converter->dst;
struct MaterializeOptions* options = converter->options;
switch (converter->ptype_view.vector_type) {
case VECTOR_TYPE_UNSPECIFIED:
return nanoarrow_materialize_unspecified(src, dst, options);
case VECTOR_TYPE_LGL:
return nanoarrow_materialize_lgl(src, dst, options);
case VECTOR_TYPE_INT:
return nanoarrow_materialize_int(src, dst, options);
case VECTOR_TYPE_DBL:
return nanoarrow_materialize_dbl(converter);
case VECTOR_TYPE_CHR:
return nanoarrow_materialize_chr(src, dst, options);
case VECTOR_TYPE_POSIXCT:
return nanoarrow_materialize_posixct(converter);
case VECTOR_TYPE_DATE:
return nanoarrow_materialize_date(converter);
case VECTOR_TYPE_DIFFTIME:
return nanoarrow_materialize_difftime(converter);
case VECTOR_TYPE_BLOB:
return nanoarrow_materialize_blob(src, dst, options);
case VECTOR_TYPE_LIST_OF:
return nanoarrow_materialize_list_of(converter, converter_xptr);
case VECTOR_TYPE_DATA_FRAME:
return nanoarrow_materialize_data_frame(converter, converter_xptr);
default:
return ENOTSUP;
}
}