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ยง
- get_
named_ ๐lit - sanitize_
identifier ๐ - translate_
actual ๐ - translate_
meta_ ๐arg - translate_
only_ ๐alias Returns only the alias from a function argument. - translate_
to_ ๐robj ConvertSEXP
arguments intoRobj
. This maintains the lifetime of references. - Return a simplified type name that will be meaningful to R. Defaults to a digest.