1use 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