8 #ifndef INCLUDE_MOLASSEMBLER_IO_SMILES_PARSER_DATA_H
9 #define INCLUDE_MOLASSEMBLER_IO_SMILES_PARSER_DATA_H
11 #include <boost/fusion/adapted/struct/adapt_struct.hpp>
12 #include <boost/fusion/include/adapt_struct.hpp>
16 #include "boost/optional.hpp"
20 namespace Molassembler {
25 bool aromatic =
false;
30 static inline ElementData aromaticElement(Utils::ElementType e) {
45 boost::optional<ChiralData> chiralOptional;
46 boost::optional<unsigned> hCount;
47 boost::optional<int> chargeOptional;
48 bool atomBracket =
false;
50 inline Utils::ElementType getElement()
const {
51 if(partialElement.Z == 0) {
52 return Utils::ElementType::none;
64 enum class StereoMarker {Forward, Backward};
66 boost::optional<BondType> type;
67 boost::optional<StereoMarker> ezStereo;
68 boost::optional<unsigned> ringNumber;
75 BOOST_FUSION_ADAPT_STRUCT(
81 BOOST_FUSION_ADAPT_STRUCT(
82 Scine::Molassembler::IO::ChiralData,
84 (
unsigned, chiralIndex)
87 BOOST_FUSION_ADAPT_STRUCT(
88 Scine::Molassembler::IO::AtomData,
90 (Scine::Molassembler::IO::ElementData, partialElement),
91 (boost::optional<Scine::Molassembler::IO::ChiralData>, chiralOptional),
92 (boost::optional<
unsigned>, hCount),
93 (boost::optional<
int>, chargeOptional),
97 BOOST_FUSION_ADAPT_STRUCT(
98 Scine::Molassembler::IO::BondData,
99 (boost::optional<Scine::Molassembler::
BondType>, type),
100 (boost::optional<Scine::Molassembler::IO::BondData::StereoMarker>, ezStereo)
101 (boost::optional<
unsigned>, ringNumber)
static ElementType element(unsigned z)
Defines basic types widely shared across the project.
ShapeResult shape(const PositionCollection &normalizedPositions, Shape shape)
Forwarding function to calculate the continuous shape measure.
Definition: SmilesParseData.h:37
static ElementType isotope(unsigned z, unsigned a)
static constexpr unsigned Z(const ElementType e) noexcept
Definition: SmilesParseData.h:42
BondType
Discrete bond type numeration.
Definition: Types.h:26
Definition: SmilesParseData.h:63
Defines symmetry names and total count.
Shape
Enumeration of all contained symmetry names.
Definition: Shapes.h:28
Definition: SmilesParseData.h:23