1#ifndef RDS2CPP_ROBJECT_HPP
2#define RDS2CPP_ROBJECT_HPP
141 std::vector<std::unique_ptr<RObject> >
values;
152 names.emplace_back(std::move(n));
164 void add(std::string n, std::unique_ptr<RObject> v,
StringEncoding enc = StringEncoding::UTF8) {
165 names.emplace_back(std::move(n));
167 values.emplace_back(std::move(v));
177template<
typename ElementType, SEXPType stype>
183 static constexpr SEXPType vector_sexp_type = stype;
263 data.push_back(std::move(d));
273 encodings.push_back(StringEncoding::NONE);
300 std::vector<std::unique_ptr<RObject> >
data;
317 std::vector<std::unique_ptr<RObject> >
data;
343 void add(std::string t, std::unique_ptr<RObject> d,
StringEncoding enc = StringEncoding::UTF8) {
344 data.push_back(std::move(d));
359 data.emplace_back(d);
370 void add(std::unique_ptr<RObject> d) {
371 data.push_back(std::move(d));
384 data.emplace_back(d);
560 std::vector<std::unique_ptr<RObject> >
data;
Parse an RDS file in C++.
Definition StringEncoding.hpp:10
AtomicVector< unsigned char, SEXPType::RAW > RawVector
Raw vector.
Definition RObject.hpp:219
AtomicVector< int32_t, SEXPType::LGL > LogicalVector
Logical vector.
Definition RObject.hpp:209
AtomicVector< double, SEXPType::REAL > DoubleVector
Double-precision vector.
Definition RObject.hpp:214
StringEncoding
Definition StringEncoding.hpp:15
AtomicVector< int32_t, SEXPType::INT > IntegerVector
Integer vector.
Definition RObject.hpp:204
SEXPType
Definition SEXPType.hpp:31
AtomicVector< std::complex< double >, SEXPType::CPLX > ComplexVector
Complex vector.
Definition RObject.hpp:224
Vector of some atomic type.
Definition RObject.hpp:178
Attributes attributes
Definition RObject.hpp:198
SEXPType type() const
Definition RObject.hpp:188
std::vector< ElementType > data
Definition RObject.hpp:193
Attribute names and values.
Definition RObject.hpp:127
std::vector< std::string > names
Definition RObject.hpp:131
std::vector< std::unique_ptr< RObject > > values
Definition RObject.hpp:141
void add(std::string n, RObject *v, StringEncoding enc=StringEncoding::UTF8)
Definition RObject.hpp:151
void add(std::string n, std::unique_ptr< RObject > v, StringEncoding enc=StringEncoding::UTF8)
Definition RObject.hpp:164
std::vector< StringEncoding > encodings
Definition RObject.hpp:136
Built-in function.
Definition RObject.hpp:432
SEXPType type() const
Definition RObject.hpp:433
std::string name
Definition RObject.hpp:438
Reference to an environment.
Definition RObject.hpp:72
SEXPType env_type
Definition RObject.hpp:103
size_t index
Definition RObject.hpp:97
SEXPType type() const
Definition RObject.hpp:91
EnvironmentIndex(size_t i)
Definition RObject.hpp:85
EnvironmentIndex(SEXPType e=SEXPType::GLOBALENV_)
Definition RObject.hpp:78
Expression vector.
Definition RObject.hpp:545
std::vector< std::unique_ptr< RObject > > data
Definition RObject.hpp:560
Attributes attributes
Definition RObject.hpp:565
SEXPType type() const
Definition RObject.hpp:554
Reference to an external pointer.
Definition RObject.hpp:109
ExternalPointerIndex(size_t i=-1)
Definition RObject.hpp:113
SEXPType type() const
Definition RObject.hpp:116
size_t index
Definition RObject.hpp:121
Generic vector, i.e., an ordinary R list.
Definition RObject.hpp:286
SEXPType type() const
Definition RObject.hpp:295
Attributes attributes
Definition RObject.hpp:305
std::vector< std::unique_ptr< RObject > > data
Definition RObject.hpp:300
Language object, i.e., a function call.
Definition RObject.hpp:444
std::vector< std::string > argument_names
Definition RObject.hpp:468
std::vector< StringEncoding > argument_encodings
Definition RObject.hpp:480
void add_argument(std::string n, RObject *d, StringEncoding enc=StringEncoding::UTF8)
Definition RObject.hpp:490
void add_argument(std::string n, std::unique_ptr< RObject > d, StringEncoding enc=StringEncoding::UTF8)
Definition RObject.hpp:504
StringEncoding function_encoding
Definition RObject.hpp:456
std::vector< std::unique_ptr< RObject > > argument_values
Definition RObject.hpp:462
Attributes attributes
Definition RObject.hpp:539
std::string function_name
Definition RObject.hpp:451
void add_argument(RObject *d)
Definition RObject.hpp:517
SEXPType type() const
Definition RObject.hpp:446
void add_argument(std::unique_ptr< RObject > d)
Definition RObject.hpp:529
std::vector< unsigned char > argument_has_name
Definition RObject.hpp:474
R's NULL value.
Definition RObject.hpp:47
SEXPType type() const
Definition RObject.hpp:48
Pairlist, i.e., a linked list.
Definition RObject.hpp:311
Attributes attributes
Definition RObject.hpp:393
std::vector< std::unique_ptr< RObject > > data
Definition RObject.hpp:317
std::vector< std::string > tag_names
Definition RObject.hpp:329
void add(RObject *d)
Definition RObject.hpp:383
SEXPType type() const
Definition RObject.hpp:312
std::vector< StringEncoding > tag_encodings
Definition RObject.hpp:334
void add(std::unique_ptr< RObject > d)
Definition RObject.hpp:370
void add(std::string t, std::unique_ptr< RObject > d, StringEncoding enc=StringEncoding::UTF8)
Definition RObject.hpp:343
void add(std::string t, RObject *d, StringEncoding enc=StringEncoding::UTF8)
Definition RObject.hpp:358
std::vector< unsigned char > has_tag
Definition RObject.hpp:323
Virtual class for all unserialized R objects.
Definition RObject.hpp:22
virtual SEXPType type() const =0
S4 object.
Definition RObject.hpp:399
StringEncoding package_encoding
Definition RObject.hpp:420
std::string class_name
Definition RObject.hpp:405
StringEncoding class_encoding
Definition RObject.hpp:410
std::string package_name
Definition RObject.hpp:415
SEXPType type() const
Definition RObject.hpp:400
Attributes attributes
Definition RObject.hpp:426
String vector.
Definition RObject.hpp:229
void add(std::string d, StringEncoding enc=StringEncoding::UTF8)
Definition RObject.hpp:262
std::vector< StringEncoding > encodings
Definition RObject.hpp:248
std::vector< char > missing
Definition RObject.hpp:254
std::vector< std::string > data
Definition RObject.hpp:243
SEXPType type() const
Definition RObject.hpp:238
void add()
Definition RObject.hpp:271
Attributes attributes
Definition RObject.hpp:280
Reference to a language symbol.
Definition RObject.hpp:54
SymbolIndex(size_t i=-1)
Definition RObject.hpp:58
SEXPType type() const
Definition RObject.hpp:61
size_t index
Definition RObject.hpp:66