#include "cru/ui/mapper/PointMapper.hpp" namespace cru::ui::mapper { bool PointMapper::XmlElementIsOfThisType(xml::XmlElementNode* node) { return node->GetTag().CaseInsensitiveCompare(u"Point") == 0; } Point PointMapper::DoMapFromString(String str) { std::vector values = str.ParseToFloatList(); if (values.size() == 2) { return {values[0], values[1]}; } else if (values.size() == 1) { return {values[0], values[0]}; } else { throw Exception(u"Invalid Point string."); } } Point PointMapper::DoMapFromXml(xml::XmlElementNode* node) { auto value_attr = node->GetOptionalAttributeCaseInsensitive(u"value"); if (!value_attr) return {}; return DoMapFromString(*value_attr); } } // namespace cru::ui::mapper