8 #ifndef INCLUDE_MOLASSEMBLER_SERIALIZATION_H
9 #define INCLUDE_MOLASSEMBLER_SERIALIZATION_H
15 #include "Molassembler/Export.h"
18 namespace Molassembler {
96 static std::string base64Encode(
const BinaryType& binary);
97 static BinaryType base64Decode(
const std::string& base64String);
103 static bool base64EqualMolecules(
const std::string& stringA,
const std::string& stringB,
104 BinaryFormat binaryFormat = BinaryFormat::CBOR);
113 static bool equalDecisionLists(
const std::string& listStringA,
const std::string& listStringB);
139 operator std::
string() const;
143 BinaryType toBinary(BinaryFormat format) const;
171 std::unique_ptr<Impl> pImpl_;
172 static std::vector<std::tuple<
int,
int,
int,
int> > unpackDecisionListString(const std::
string& listString);
173 static std::tuple<
int,
int,
int,
int> canonicalizeDecisionListElement(const std::tuple<
int,
int,
int,
int>& decisionListElement);
174 static
bool equalVersions(const std::vector<
unsigned> versionA, const std::vector<
unsigned> versionB);
175 static std::vector<std::
string> splitBase64StringIntoMoleculeStrings(std::
string base64String);
176 static
bool compareMoleculeDecisionList(const std::vector<std::tuple<
int,
int,
int,
int>>& listA,
177 const std::vector<std::tuple<
int,
int,
int,
int>>& listB);
Models a molecule as a graph (connectivity of atoms) and a list of stereopermutators.
Definition: Molecule.h:77
BinaryFormat
Binary formats that JSON can be encoded into and decoded from.
Definition: Serialization.h:86
Class representing a compact JSON serialization of a molecule.
Definition: Serialization.h:78
std::vector< std::uint8_t > BinaryType
Type used to represent binary JSON formats.
Definition: Serialization.h:83