aboutsummaryrefslogtreecommitdiff
path: root/libs/kstd/include
diff options
context:
space:
mode:
Diffstat (limited to 'libs/kstd/include')
-rw-r--r--libs/kstd/include/kstd/bits/format/vformat.hpp6
-rw-r--r--libs/kstd/include/kstd/string20
2 files changed, 23 insertions, 3 deletions
diff --git a/libs/kstd/include/kstd/bits/format/vformat.hpp b/libs/kstd/include/kstd/bits/format/vformat.hpp
index 69c7f33..4fec7dd 100644
--- a/libs/kstd/include/kstd/bits/format/vformat.hpp
+++ b/libs/kstd/include/kstd/bits/format/vformat.hpp
@@ -52,7 +52,7 @@ namespace kstd
auto push(std::string_view text) -> void override
{
- m_output = std::ranges::copy(text, m_output);
+ m_output = std::ranges::copy(text, m_output).out;
}
auto push(char character) -> void override
@@ -75,7 +75,7 @@ namespace kstd
auto format(format_string<std::type_identity_t<ArgumentTypes>...> format, ArgumentTypes &&... args) -> string
{
auto buffer = bits::format::string_writer{};
- bits::format::vformat_to(buffer, format.str_view, std::forward<ArgumentTypes>(args)...);
+ bits::format::vformat_to(buffer, format.str_view, make_format_args(std::forward<ArgumentTypes>(args)...).args);
return buffer.release();
}
@@ -90,7 +90,7 @@ namespace kstd
ArgumentTypes &&... args) -> Output
{
auto buffer = bits::format::iterator_writer{iterator};
- bits::format::vformat_to(buffer, format.str_view, std::forward<ArgumentTypes>(args)...);
+ bits::format::vformat_to(buffer, format.str_view, make_format_args(std::forward<ArgumentTypes>(args)...).args);
return buffer.iterator();
}
diff --git a/libs/kstd/include/kstd/string b/libs/kstd/include/kstd/string
index 4ce19ce..58c4a08 100644
--- a/libs/kstd/include/kstd/string
+++ b/libs/kstd/include/kstd/string
@@ -347,6 +347,26 @@ namespace kstd
return !(lhs == rhs);
}
+ [[nodiscard]] constexpr auto inline operator==(string const & lhs, char const * rhs) -> bool
+ {
+ return lhs.view() == std::string_view{rhs};
+ }
+
+ [[nodiscard]] constexpr auto inline operator!=(string const & lhs, char const * rhs) -> bool
+ {
+ return !(lhs == rhs);
+ }
+
+ [[nodiscard]] constexpr auto inline operator==(char const * lhs, string const & rhs) -> bool
+ {
+ return std::string_view{lhs} == rhs.view();
+ }
+
+ [[nodiscard]] constexpr auto inline operator!=(char const * lhs, string const & rhs) -> bool
+ {
+ return !(lhs == rhs);
+ }
+
template<>
struct formatter<string> : formatter<std::string_view>
{