rds2cpp
Read and write RDS/RDA files in C++
Loading...
Searching...
No Matches
RdaFile.hpp
Go to the documentation of this file.
1#ifndef RDS2CPP_RDAFILE_HPP
2#define RDS2CPP_RDAFILE_HPP
3
4#include <array>
5#include <cstdint>
6
7#include "RObject.hpp"
8#include "Version.hpp"
9
16namespace rds2cpp {
17
21struct RdaObject {
25 RdaObject() = default;
26
31 RdaObject(SymbolIndex name, std::unique_ptr<RObject> value) : name(std::move(name)), value(std::move(value)) {}
32
37
41 std::unique_ptr<RObject> value;
42};
43
47struct RdaFile {
51 std::int32_t format_version = 3;
52
57
62
66 StringEncoding encoding = StringEncoding::UTF8;
67
71 std::vector<RdaObject> objects;
72
77 std::vector<Environment> environments;
78
83 std::vector<Symbol> symbols;
84
89 std::vector<ExternalPointer> external_pointers;
90};
91
92}
93
94#endif
Representations of unserialized R objects.
R version information.
Parse an RDS file in C++.
Definition StringEncoding.hpp:12
StringEncoding
Definition StringEncoding.hpp:17
Contents of the parsed RDA file.
Definition RdaFile.hpp:47
std::vector< RdaObject > objects
Definition RdaFile.hpp:71
std::vector< Symbol > symbols
Definition RdaFile.hpp:83
StringEncoding encoding
Definition RdaFile.hpp:66
std::vector< ExternalPointer > external_pointers
Definition RdaFile.hpp:89
std::vector< Environment > environments
Definition RdaFile.hpp:77
Version writer_version
Definition RdaFile.hpp:56
Version reader_version
Definition RdaFile.hpp:61
std::int32_t format_version
Definition RdaFile.hpp:51
R object saved in a RdaFile.
Definition RdaFile.hpp:21
SymbolIndex name
Definition RdaFile.hpp:36
std::unique_ptr< RObject > value
Definition RdaFile.hpp:41
RdaObject(SymbolIndex name, std::unique_ptr< RObject > value)
Definition RdaFile.hpp:31
Reference to a language symbol.
Definition RObject.hpp:85
Major-minor-patch version number, usually of R itself.
Definition Version.hpp:22