Trait extendr_api::robj::rinternals::Rinternals

source ·
pub trait Rinternals: Types + Conversions {
Show 64 methods // Provided 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: SEXPTYPE) -> 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: SEXPTYPE, 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 is_altlist(&self) -> bool { ... } fn deparse(&self) -> Result<String> { ... }
}
Expand description

The following impls wrap specific Rinternals.h functions.

Provided Methods§

source

fn is_null(&self) -> bool

Return true if this is the null object.

source

fn is_symbol(&self) -> bool

Return true if this is a symbol.

source

fn is_logical(&self) -> bool

Return true if this is a boolean (logical) vector

source

fn is_real(&self) -> bool

Return true if this is a real (f64) vector.

source

fn is_complex(&self) -> bool

Return true if this is a complex vector.

source

fn is_expressions(&self) -> bool

Return true if this is an expression.

source

fn is_environment(&self) -> bool

Return true if this is an environment.

source

fn is_promise(&self) -> bool

Return true if this is an environment.

source

fn is_string(&self) -> bool

Return true if this is a string.

source

fn is_object(&self) -> bool

Return true if this is an object (ie. has a class attribute).

source

fn is_s4(&self) -> bool

Return true if this is a S4 object.

source

fn is_external_pointer(&self) -> bool

Return true if this is an expression.

source

fn get_current_srcref(val: i32) -> Robj

Get the source ref.

source

fn get_src_filename(&self) -> Robj

Get the source filename.

source

fn as_character_vector(&self) -> Robj

Convert to a string vector.

source

fn coerce_vector(&self, sexptype: SEXPTYPE) -> Robj

Convert to vectors of many kinds.

source

fn pair_to_vector_list(&self) -> Robj

Convert a pairlist (LISTSXP) to a vector list (VECSXP).

source

fn vector_to_pair_list(&self) -> Robj

Convert a vector list (VECSXP) to a pair list (LISTSXP)

source

fn as_character_factor(&self) -> Robj

Convert a factor to a string vector.

source

fn alloc_matrix(sexptype: SEXPTYPE, rows: i32, cols: i32) -> Robj

Allocate a matrix object.

source

fn duplicate(&self) -> Robj

Do a deep copy of this object. Note that clone() only adds a reference.

source

fn find_function<K: TryInto<Symbol, Error = Error>>( &self, key: K ) -> Result<Robj>

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());
}
source

fn find_var<K: TryInto<Symbol, Error = Error>>(&self, key: K) -> Result<Robj>

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);
}
source

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);
}
source

fn ncols(&self) -> usize

Number of columns of a matrix

source

fn nrows(&self) -> usize

Number of rows of a matrix

source

fn xlengthgets(&self, new_len: usize) -> Result<Robj>

source

fn alloc_vector(sexptype: SEXPTYPE, len: usize) -> Robj

Allocated an owned object of a certain type.

source

fn conformable(a: &Robj, b: &Robj) -> bool

Return true if two arrays have identical dims.

source

fn is_array(&self) -> bool

Return true if this is an array.

source

fn is_factor(&self) -> bool

Return true if this is factor.

source

fn is_frame(&self) -> bool

Return true if this is a data frame.

source

fn is_function(&self) -> bool

Return true if this is a function or a primitive (CLOSXP, BUILTINSXP or SPECIALSXP)

source

fn is_integer(&self) -> bool

Return true if this is an integer vector (INTSXP) but not a factor.

source

fn is_language(&self) -> bool

Return true if this is a language object (LANGSXP).

source

fn is_pairlist(&self) -> bool

Return true if this is NILSXP or LISTSXP.

source

fn is_matrix(&self) -> bool

Return true if this is a matrix.

source

fn is_list(&self) -> bool

Return true if this is NILSXP or VECSXP.

source

fn is_number(&self) -> bool

Return true if this is INTSXP, LGLSXP or REALSXP but not a factor.

source

fn is_primitive(&self) -> bool

Return true if this is a primitive function BUILTINSXP, SPECIALSXP.

source

fn is_ts(&self) -> bool

Return true if this is a time series vector (see tsp).

source

fn is_user_binop(&self) -> bool

Return true if this is a user defined binop.

source

fn is_valid_string(&self) -> bool

Return true if this is a valid string.

source

fn is_valid_string_f(&self) -> bool

Return true if this is a valid string.

source

fn is_vector(&self) -> bool

Return true if this is a vector.

source

fn is_vector_atomic(&self) -> bool

Return true if this is an atomic vector.

source

fn is_vector_list(&self) -> bool

Return true if this is a vector list.

source

fn is_vectorizable(&self) -> bool

Return true if this is can be made into a vector.

source

fn is_raw(&self) -> bool

Return true if this is RAWSXP.

source

fn is_char(&self) -> bool

Return true if this is CHARSXP.

source

fn is_missing_arg(&self) -> bool

source

fn is_unbound_value(&self) -> bool

source

fn is_package_env(&self) -> bool

source

fn package_env_name(&self) -> Robj

source

fn is_namespace_env(&self) -> bool

source

fn namespace_env_spec(&self) -> Robj

source

fn is_altrep(&self) -> bool

Returns true if this is an ALTREP object.

source

fn is_altinteger(&self) -> bool

Returns true if this is an integer ALTREP object.

source

fn is_altreal(&self) -> bool

Returns true if this is an real ALTREP object.

source

fn is_altlogical(&self) -> bool

Returns true if this is an logical ALTREP object.

source

fn is_altraw(&self) -> bool

Returns true if this is a raw ALTREP object.

source

fn is_altstring(&self) -> bool

Returns true if this is an integer ALTREP object.

source

fn is_altlist(&self) -> bool

Returns true if this is an integer ALTREP object.

source

fn deparse(&self) -> Result<String>

Generate a text representation of this object.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl Rinternals for Altrep

find_var() etc.

source§

impl Rinternals for Complexes

find_var() etc.

source§

impl Rinternals for Doubles

find_var() etc.

source§

impl Rinternals for Environment

find_var() etc.

source§

impl Rinternals for Expressions

find_var() etc.

source§

impl Rinternals for Function

find_var() etc.

source§

impl Rinternals for Integers

find_var() etc.

source§

impl Rinternals for Language

find_var() etc.

source§

impl Rinternals for List

find_var() etc.

source§

impl Rinternals for Logicals

find_var() etc.

source§

impl Rinternals for Pairlist

find_var() etc.

source§

impl Rinternals for Primitive

find_var() etc.

source§

impl Rinternals for Promise

find_var() etc.

source§

impl Rinternals for Raw

find_var() etc.

source§

impl Rinternals for Rstr

find_var() etc.

source§

impl Rinternals for S4

find_var() etc.

source§

impl Rinternals for Strings

find_var() etc.

source§

impl Rinternals for Symbol

find_var() etc.

source§

impl Rinternals for Robj

source§

impl<T> Rinternals for Dataframe<T>

find_var() etc.

source§

impl<T> Rinternals for ExternalPtr<T>

find_var() etc.