1#ifndef RDS2CPP_WRITE_RDA_HPP
2#define RDS2CPP_WRITE_RDA_HPP
12#include "utils_write.hpp"
13#include "write_object.hpp"
14#include "SharedWriteInfo.hpp"
51 std::unique_ptr<byteme::BufferedWriter<unsigned char> > bufwriter;
58 bufwriter->write(
"RDX3\nX\n");
63 const std::string encoding = string_encoding_to_name(info.
encoding);
65 bufwriter->write(encoding);
71 for (
const auto& entry : info.
objects) {
76 details[3] =
static_cast<unsigned char>(SEXPType::LIST);
77 bufwriter->write(details.data(), details.size());
78 write_symbol(&(entry.name), *bufwriter, shared);
79 write_object(entry.value.get(), *bufwriter, shared);
82 inject_header(SEXPType::NILVALUE_, *bufwriter);
Representations of unserialized R objects.
Information about an RDA file.
Parse an RDS file in C++.
Definition StringEncoding.hpp:12
void write_rda(const RdaFile &info, Writer &writer, const WriteRdaOptions &options)
Definition write_rda.hpp:50
constexpr Dest_ cap(Value_ x)
constexpr Dest_ cast(Value_ x)
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
Options for write_rda().
Definition write_rda.hpp:27
std::size_t buffer_size
Definition write_rda.hpp:37
bool parallel
Definition write_rda.hpp:31