alecAbstraction Layer for Escape Codes |
git clone git://git.dimitrijedobrota.com/alec.git |
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING | |
commit | 14a27ded286897a25bfc24151e5324ef375b127f |
parent | a363d81f66d03573e5600c468e18eca19973d212 |
author | Dimitrije Dobrota <mail@dimitrijedobrota.com> |
date | Sat, 22 Jun 2024 15:08:32 +0200 |
Improve string_literal
Diffstat:M | CMakeLists.txt | | | +- |
M | src/alec.rules.hpp | | | +++++++++----- |
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
@@ -3,7 +3,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
project(
Alec
VERSION 1.0.7
VERSION 1.0.8
DESCRIPTION "Abstraction Layer for Escape Codes"
HOMEPAGE_URL https://git.dimitrijedobrota.com/alec.git
LANGUAGES C CXX
diff --git a/src/alec.rules.hpp b/src/alec.rules.hpp
@@ -55,11 +55,15 @@ enum class Motion {
namespace details {
template <std::size_t N> struct string_literal {
constexpr string_literal(const char (&str)[N]) { std::copy_n(str, N, value); }
constexpr std::size_t size() const { return N; }
template<std::size_t N>
struct string_literal
{
constexpr string_literal(const char (&str)[N]) : m_value(std::to_array(str)) {}
char value[N];
constexpr std::size_t size() const { return N; }
constexpr const char* data() const { return m_value.data(); }
std::array<char, N> m_value;
};
namespace helper {
@@ -72,7 +76,7 @@ namespace helper {
}
template <std::size_t N> static constexpr char *append(char *ptr, string_literal<N> val) {
std::copy_n(val.value, N, ptr);
std::copy_n(val.data(), N, ptr);
return ptr + N;
}