rustr/
lcons.rs

1//! R lcons methods
2//!
3//!
4
5use rdll::*;
6use protect::stackp::*;
7use traits::*;
8
9#[inline]
10pub fn rustr_lcons<T: ToSEXP>(car: T, cdr: T) -> SEXP {
11    unsafe { Shield::new(Rf_lcons(car.s(), cdr.s())).s() }
12}
13
14#[inline]
15pub fn rustr_list1<T: ToSEXP>(x: T) -> SEXP {
16    unsafe { Shield::new(Rf_list1(x.s())).s() }
17}
18
19#[inline]
20pub fn rustr_lang1<T: ToSEXP>(x: T) -> SEXP {
21    unsafe { Shield::new(Rf_lang1(x.s())).s() }
22}
23
24#[inline]
25pub fn rustr_list2<T: ToSEXP>(x0: T, x1: T) -> SEXP {
26    unsafe { Shield::new(Rf_cons(x0.s(), rustr_list1(x1.s()))).s() }
27}
28
29#[inline]
30pub fn rustr_lang2<T: ToSEXP>(x0: T, x1: T) -> SEXP {
31    unsafe { Shield::new(Rf_lcons(x0.s(), rustr_list1(x1.s()))).s() }
32}
33
34#[inline]
35pub fn rustr_list3<T: ToSEXP>(x0: T, x1: T, x2: T) -> SEXP {
36    unsafe { Shield::new(Rf_cons(x0.s(), rustr_list2(x1.s(), x2.s()))).s() }
37}
38
39#[inline]
40pub fn rustr_lang3<T: ToSEXP>(x0: T, x1: T, x2: T) -> SEXP {
41    unsafe { Shield::new(Rf_lcons(x0.s(), rustr_list2(x1.s(), x2.s()))).s() }
42}
43
44#[inline]
45pub fn rustr_list4<T: ToSEXP>(x0: T, x1: T, x2: T, x3: T) -> SEXP {
46    unsafe { Shield::new(Rf_cons(x0.s(), rustr_list3(x1.s(), x2.s(), x3.s()))).s() }
47}
48
49#[inline]
50pub fn rustr_lang4<T: ToSEXP>(x0: T, x1: T, x2: T, x3: T) -> SEXP {
51    unsafe { Shield::new(Rf_lcons(x0.s(), rustr_list3(x1.s(), x2.s(), x3.s()))).s() }
52}
53
54// .... if sb needed this, we can add rustr_lang20