Trait extendr_api::robj::Rinternals
source · [−]pub trait Rinternals: Types + Conversions {
Show 63 methods
fn is_null(&self) -> bool { ... }
fn is_symbol(&self) -> bool { ... }
fn is_logical(&self) -> bool { ... }
fn is_real(&self) -> bool { ... }
fn is_complex(&self) -> bool { ... }
fn is_expressions(&self) -> bool { ... }
fn is_environment(&self) -> bool { ... }
fn is_promise(&self) -> bool { ... }
fn is_string(&self) -> bool { ... }
fn is_object(&self) -> bool { ... }
fn is_s4(&self) -> bool { ... }
fn is_external_pointer(&self) -> bool { ... }
fn get_current_srcref(val: i32) -> Robj { ... }
fn get_src_filename(&self) -> Robj { ... }
fn as_character_vector(&self) -> Robj { ... }
fn coerce_vector(&self, sexptype: u32) -> Robj { ... }
fn pair_to_vector_list(&self) -> Robj { ... }
fn vector_to_pair_list(&self) -> Robj { ... }
fn as_character_factor(&self) -> Robj { ... }
fn alloc_matrix(sexptype: SEXPTYPE, rows: i32, cols: i32) -> Robj { ... }
fn duplicate(&self) -> Robj { ... }
fn find_function<K: TryInto<Symbol, Error = Error>>(
&self,
key: K
) -> Result<Robj> { ... }
fn find_var<K: TryInto<Symbol, Error = Error>>(
&self,
key: K
) -> Result<Robj> { ... }
fn eval_promise(&self) -> Result<Robj> { ... }
fn ncols(&self) -> usize { ... }
fn nrows(&self) -> usize { ... }
fn xlengthgets(&self, new_len: usize) -> Result<Robj> { ... }
fn alloc_vector(sexptype: u32, len: usize) -> Robj { ... }
fn conformable(a: &Robj, b: &Robj) -> bool { ... }
fn is_array(&self) -> bool { ... }
fn is_factor(&self) -> bool { ... }
fn is_frame(&self) -> bool { ... }
fn is_function(&self) -> bool { ... }
fn is_integer(&self) -> bool { ... }
fn is_language(&self) -> bool { ... }
fn is_pairlist(&self) -> bool { ... }
fn is_matrix(&self) -> bool { ... }
fn is_list(&self) -> bool { ... }
fn is_number(&self) -> bool { ... }
fn is_primitive(&self) -> bool { ... }
fn is_ts(&self) -> bool { ... }
fn is_user_binop(&self) -> bool { ... }
fn is_valid_string(&self) -> bool { ... }
fn is_valid_string_f(&self) -> bool { ... }
fn is_vector(&self) -> bool { ... }
fn is_vector_atomic(&self) -> bool { ... }
fn is_vector_list(&self) -> bool { ... }
fn is_vectorizable(&self) -> bool { ... }
fn is_raw(&self) -> bool { ... }
fn is_char(&self) -> bool { ... }
fn is_missing_arg(&self) -> bool { ... }
fn is_unbound_value(&self) -> bool { ... }
fn is_package_env(&self) -> bool { ... }
fn package_env_name(&self) -> Robj { ... }
fn is_namespace_env(&self) -> bool { ... }
fn namespace_env_spec(&self) -> Robj { ... }
fn is_altrep(&self) -> bool { ... }
fn is_altinteger(&self) -> bool { ... }
fn is_altreal(&self) -> bool { ... }
fn is_altlogical(&self) -> bool { ... }
fn is_altraw(&self) -> bool { ... }
fn is_altstring(&self) -> bool { ... }
fn deparse(&self) -> Result<String> { ... }
}
Expand description
The following impls wrap specific Rinternals.h functions.
Provided methods
fn is_logical(&self) -> bool
fn is_logical(&self) -> bool
Return true if this is a boolean (logical) vector
fn is_complex(&self) -> bool
fn is_complex(&self) -> bool
Return true if this is a complex vector.
fn is_expressions(&self) -> bool
fn is_expressions(&self) -> bool
Return true if this is an expression.
fn is_environment(&self) -> bool
fn is_environment(&self) -> bool
Return true if this is an environment.
fn is_promise(&self) -> bool
fn is_promise(&self) -> bool
Return true if this is an environment.
fn is_external_pointer(&self) -> bool
fn is_external_pointer(&self) -> bool
Return true if this is an expression.
fn get_current_srcref(val: i32) -> Robj
fn get_current_srcref(val: i32) -> Robj
Get the source ref.
fn get_src_filename(&self) -> Robj
fn get_src_filename(&self) -> Robj
Get the source filename.
fn as_character_vector(&self) -> Robj
fn as_character_vector(&self) -> Robj
Convert to a string vector.
fn coerce_vector(&self, sexptype: u32) -> Robj
fn coerce_vector(&self, sexptype: u32) -> Robj
Convert to vectors of many kinds.
fn pair_to_vector_list(&self) -> Robj
fn pair_to_vector_list(&self) -> Robj
Convert a pairlist (LISTSXP) to a vector list (VECSXP).
fn vector_to_pair_list(&self) -> Robj
fn vector_to_pair_list(&self) -> Robj
Convert a vector list (VECSXP) to a pair list (LISTSXP)
fn as_character_factor(&self) -> Robj
fn as_character_factor(&self) -> Robj
Convert a factor to a string vector.
fn alloc_matrix(sexptype: SEXPTYPE, rows: i32, cols: i32) -> Robj
fn alloc_matrix(sexptype: SEXPTYPE, rows: i32, cols: i32) -> Robj
Allocate a matrix object.
Do a deep copy of this object. Note that clone() only adds a reference.
Find a function in an environment ignoring other variables.
This evaulates promises if they are found.
See also global_function().
use extendr_api::prelude::*;
test! {
let my_fun = base_env().find_function(sym!(ls)).unwrap();
assert_eq!(my_fun.is_function(), true);
// Note: this may crash on some versions of windows which don't support unwinding.
// assert!(base_env().find_function(sym!(qwertyuiop)).is_none());
}
Find a variable in an environment.
See also global_var().
Note that many common variables and functions are contained in promises which must be evaluated and this function may throw an R error.
use extendr_api::prelude::*;
test! {
let iris_dataframe = global_env()
.find_var(sym!(iris)).unwrap().eval_promise().unwrap();
assert_eq!(iris_dataframe.is_frame(), true);
assert_eq!(iris_dataframe.len(), 5);
// Note: this may crash on some versions of windows which don't support unwinding.
//assert_eq!(global_env().find_var(sym!(imnotasymbol)), None);
}
fn eval_promise(&self) -> Result<Robj>
fn eval_promise(&self) -> Result<Robj>
If this object is a promise, evaluate it, otherwise return the object.
use extendr_api::prelude::*;
test! {
let iris_promise = global_env().find_var(sym!(iris)).unwrap();
let iris_dataframe = iris_promise.eval_promise().unwrap();
assert_eq!(iris_dataframe.is_frame(), true);
}
fn xlengthgets(&self, new_len: usize) -> Result<Robj>
fn xlengthgets(&self, new_len: usize) -> Result<Robj>
Copy a vector and resize it. See. https://github.com/hadley/r-internals/blob/master/vectors.md
fn alloc_vector(sexptype: u32, len: usize) -> Robj
fn alloc_vector(sexptype: u32, len: usize) -> Robj
Allocated an owned object of a certain type.
fn conformable(a: &Robj, b: &Robj) -> bool
fn conformable(a: &Robj, b: &Robj) -> bool
Return true if two arrays have identical dims.
fn is_function(&self) -> bool
fn is_function(&self) -> bool
Return true if this is a function or a primitive (CLOSXP, BUILTINSXP or SPECIALSXP)
fn is_integer(&self) -> bool
fn is_integer(&self) -> bool
Return true if this is an integer vector (INTSXP) but not a factor.
fn is_language(&self) -> bool
fn is_language(&self) -> bool
Return true if this is a language object (LANGSXP).
fn is_pairlist(&self) -> bool
fn is_pairlist(&self) -> bool
Return true if this is NILSXP or LISTSXP.
fn is_primitive(&self) -> bool
fn is_primitive(&self) -> bool
Return true if this is a primitive function BUILTINSXP, SPECIALSXP.
fn is_user_binop(&self) -> bool
fn is_user_binop(&self) -> bool
Return true if this is a user defined binop.
fn is_valid_string(&self) -> bool
fn is_valid_string(&self) -> bool
Return true if this is a valid string.
fn is_valid_string_f(&self) -> bool
fn is_valid_string_f(&self) -> bool
Return true if this is a valid string.
fn is_vector_atomic(&self) -> bool
fn is_vector_atomic(&self) -> bool
Return true if this is an atomic vector.
fn is_vector_list(&self) -> bool
fn is_vector_list(&self) -> bool
Return true if this is a vector list.
fn is_vectorizable(&self) -> bool
fn is_vectorizable(&self) -> bool
Return true if this is can be made into a vector.
fn is_missing_arg(&self) -> bool
fn is_unbound_value(&self) -> bool
fn is_package_env(&self) -> bool
fn package_env_name(&self) -> Robj
fn is_namespace_env(&self) -> bool
fn namespace_env_spec(&self) -> Robj
fn is_altinteger(&self) -> bool
fn is_altinteger(&self) -> bool
Returns true
if this is an integer ALTREP object.
fn is_altreal(&self) -> bool
fn is_altreal(&self) -> bool
Returns true
if this is an real ALTREP object.
fn is_altlogical(&self) -> bool
fn is_altlogical(&self) -> bool
Returns true
if this is an logical ALTREP object.
fn is_altstring(&self) -> bool
fn is_altstring(&self) -> bool
Returns true
if this is an integer ALTREP object.
Implementors
impl Rinternals for Altrep
find_var() etc.
impl Rinternals for Complexes
find_var() etc.
impl Rinternals for Doubles
find_var() etc.
impl Rinternals for Environment
find_var() etc.
impl Rinternals for Expressions
find_var() etc.
impl Rinternals for Function
find_var() etc.
impl Rinternals for Integers
find_var() etc.
impl Rinternals for Language
find_var() etc.
impl Rinternals for List
find_var() etc.
impl Rinternals for Logicals
find_var() etc.
impl Rinternals for Pairlist
find_var() etc.
impl Rinternals for Primitive
find_var() etc.
impl Rinternals for Promise
find_var() etc.
impl Rinternals for Raw
find_var() etc.
impl Rinternals for Rstr
find_var() etc.
impl Rinternals for S4
find_var() etc.
impl Rinternals for Strings
find_var() etc.
impl Rinternals for Symbol
find_var() etc.
impl Rinternals for Robj
impl<T> Rinternals for Dataframe<T>
find_var() etc.
impl<T: Debug + 'static> Rinternals for ExternalPtr<T>
find_var() etc.