hemplateSimple XML template engine |
git clone git://git.dimitrijedobrota.com/hemplate.git |
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING |
commit | 6db03b9dad805863dd70bfda01d371212a004803 |
parent | 71995b9619fec51a9e57635abd4d7ec9efadf91d |
author | Dimitrije Dobrota < mail@dimitrijedobrota.com > |
date | Wed, 23 Apr 2025 08:31:01 +0200 |
Remove streamable as it's unused
M | include/hemplate/attribute.hpp | | | +++++++++++++++++++++++++++++++ ----- |
D | include/hemplate/streamable.hpp | | | ------------------------------------------- |
2 files changed, 31 insertions(+), 48 deletions(-)
diff --git a/ include/hemplate/attribute.hpp b/ include/hemplate/attribute.hpp
@@ -1,16 +1,16 @@
#pragma once
#include <format>
#include <string>
#include <utility>
#include <vector>
#include "hemplate/hemplate_export.hpp"
#include "hemplate/streamable.hpp"
namespace hemplate
{
class HEMPLATE_EXPORT attribute : public streamable<attribute>
class HEMPLATE_EXPORT attribute
{
public:
attribute(std::string name) // NOLINT
@@ -45,7 +45,7 @@
private:
std::string m_value;
};
class HEMPLATE_EXPORT attribute_list : public streamable<attribute_list>
class HEMPLATE_EXPORT attribute_list
{
public:
attribute_list() = default;
@@ -93,5 +93,31 @@
private:
} // namespace hemplate
CUSTOM_FORMAT(hemplate::attribute)
CUSTOM_FORMAT(hemplate::attribute_list)
template<>
struct std::formatter<hemplate::attribute>
{
static constexpr auto parse(std::format_parse_context& ctx)
{
return ctx.begin();
}
static auto format(const hemplate::attribute& type, std::format_context& ctx)
{
return std::format_to(ctx.out(), "{}", static_cast<std::string>(type));
}
};
template<>
struct std::formatter<hemplate::attribute_list>
{
static constexpr auto parse(std::format_parse_context& ctx)
{
return ctx.begin();
}
static auto format(const hemplate::attribute_list& type,
std::format_context& ctx)
{
return std::format_to(ctx.out(), "{}", static_cast<std::string>(type));
}
};
diff --git a/ include/hemplate/streamable.hpp b/ include/hemplate/streamable.hpp
@@ -1,43 +0,0 @@
#pragma once
#include <format>
#include <ostream>
#include "hemplate/hemplate_export.hpp"
namespace hemplate
{
template<typename D>
class HEMPLATE_EXPORT streamable
{
friend D;
streamable() = default;
public:
bool operator==(const streamable& rhs) const = default;
friend std::ostream& operator<<(std::ostream& out, const streamable& obj)
{
return out << static_cast<std::string>(static_cast<D&>(obj));
}
};
// NOLINTNEXTLINE cppcoreguidelines-macro-usage
#define CUSTOM_FORMAT(Type) \
template<> \
struct std::formatter<Type> \
{ \
constexpr auto parse(std::format_parse_context& ctx) \
{ \
return ctx.begin(); \
} \
\
auto format(const Type& type, std::format_context& ctx) const \
{ \
return std::format_to(ctx.out(), "{}", static_cast<std::string>(type)); \
} \
};
} // namespace hemplate