[−][src]Crate extendr_api
extendr - A safe and user friendly R extension interface.
This library aims to provide an interface that will be familiar to first-time users of Rust or indeed any compiled language.
Anyone who knows the R library should be able to write R extensions.
See the Robj struct for much of the content of this crate. Robj provides a safe wrapper for the R object type.
This library is just being born, but goals are:
Implement common R functions such as c() and print()
Example:
let v = c!(1, 2, 3); let l = list!(a=1, b=2); print!(v, l);
Provide a wrapper for r objects.
Example:
let s = Robj::from("hello"); let i = Robj::from(1); let r = Robj::from(1.0);
Provide iterator support for creation and consumption of r vectors.
Example:
let res = (1..=100).iter().collect::<Robj>(); for x in res { print!(x); }
Provide a procedural macro to adapt Rust functions to R
Example:
#[extendr] fn fred(a: i32) -> i32 { a + 1 }
In R:
result <- .Call("fred", 1)
Macros
append_lang | Convert a list of tokens to an array of tuples. |
args | |
c | Concatenation operator. |
data_frame | Create a dataframe. |
extendr_module | Define a module and export symbols to R Example: |
lang | A macro for constructing R langage objects. |
list | Create a list. |
push_args | Convert a list of tokens to an array of tuples. |
r | R object encapsulation operator. |
read_table | Read a CSV file. |
rep | Create a vector with repeating elements. |
Structs
CallMethod | |
Character | Wrapper for creating character objects. |
Lang | Wrapper for creating language objects. |
List | Wrapper for creating list objects. |
ListIter | |
R_CallMethodDef | |
StrIter | |
Symbol | Wrapper for creating symbols. |
VecIter |
Enums
Robj | Wrapper for an R S-expression pointer (SEXP). |
Constants
FALSE | |
NULL | |
TRUE |
Traits
AsTypedSlice | |
FromRobj |
Functions
R_forceSymbols⚠ | |
R_registerRoutines⚠ | |
R_useDynamicSymbols⚠ | |
append⚠ | |
append_with_name⚠ | |
end_r | Close down the R interpreter. Note you won't be able to Restart it, so use with care or not at all. |
make_lang⚠ | |
new_borrowed⚠ | |
new_owned⚠ | |
new_sys⚠ | |
register_call_methods⚠ | |
start_r | |
unwrap_or_throw | Throw an R error if a result is an error. |
Type Definitions
AnyError | Generic dynamic error type. |
DllInfo | |
SEXP |
Attribute Macros
extendr | Generate bindings for a single function. |