extendr_macros

Module wrappers

Source
Expand description

This is responsible for generating the C functions that act as wrappers of the exported Rust functions.

extendr relies on the .Call-interface In short, it is necessary the the signature of the C-function have SEXP as the type for return type, and argument types.

For instance, if your function returns nothing, the return type is not allowed to be void, instead SEXP must be used, and one should return R_NilValue.

ยงR wrappers

Within R, you may call rextendr::document() to generate R functions, that use the .Call-interface, to call the wrapped Rust functions.

You may also manually implement these wrappers, in order to do special type-checking, or other annotation, that could be more convenient to do on the R-side. The C-functions are named according to "{WRAP_PREFIX}{prefix}{mod_name}". See WRAP_PREFIX, and note that prefix is set specifically for methods in extendr-impl blocks, while for functions have no prefix.

Constantsยง

Functionsยง