diff options
| author | Lexi Winter <lexi@le-fay.org> | 2025-07-02 03:43:39 +0100 |
|---|---|---|
| committer | Lexi Winter <lexi@le-fay.org> | 2025-07-02 03:43:39 +0100 |
| commit | 06fafff8e9e9c096cc39bde0306caa53ad3a2351 (patch) | |
| tree | edfd6a5b08b77bc082e53b7b53a2e5f8dbbc8566 /nihil.match | |
| parent | 712edacbc75e6dc98c11b3c5f6c52f823c747e2f (diff) | |
| download | nihil-06fafff8e9e9c096cc39bde0306caa53ad3a2351.tar.gz nihil-06fafff8e9e9c096cc39bde0306caa53ad3a2351.tar.bz2 | |
move error and match to util
Diffstat (limited to 'nihil.match')
| -rw-r--r-- | nihil.match/CMakeLists.txt | 22 | ||||
| -rw-r--r-- | nihil.match/match.ccm | 18 | ||||
| -rw-r--r-- | nihil.match/test.cc | 30 |
3 files changed, 0 insertions, 70 deletions
diff --git a/nihil.match/CMakeLists.txt b/nihil.match/CMakeLists.txt deleted file mode 100644 index da59663..0000000 --- a/nihil.match/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -# This source code is released into the public domain. - -add_library(nihil.match STATIC) -target_link_libraries(nihil.match PRIVATE nihil.std) -target_sources(nihil.match - PUBLIC FILE_SET modules TYPE CXX_MODULES FILES - match.ccm -) - -if(NIHIL_TESTS) - enable_testing() - - add_executable(nihil.match.test test.cc) - target_link_libraries(nihil.match.test PRIVATE - nihil.match - Catch2::Catch2WithMain - ) - - include(CTest) - include(Catch) - catch_discover_tests(nihil.match.test) -endif() diff --git a/nihil.match/match.ccm b/nihil.match/match.ccm deleted file mode 100644 index 03730bb..0000000 --- a/nihil.match/match.ccm +++ /dev/null @@ -1,18 +0,0 @@ -// This source code is released into the public domain. -export module nihil.match; - -import nihil.std; - -namespace nihil { - -export template<class... Ts> -struct match : Ts... { using Ts::operator()...; }; - -export template<typename... Ts, typename... Fs> -[[nodiscard]] constexpr decltype(auto) operator| - (std::variant<Ts...> const &v, match<Fs...> const &match) -{ - return std::visit(match, v); -} - -} // namespace nihil diff --git a/nihil.match/test.cc b/nihil.match/test.cc deleted file mode 100644 index 974a58a..0000000 --- a/nihil.match/test.cc +++ /dev/null @@ -1,30 +0,0 @@ -// This source code is released into the public domain. - -#include <catch2/catch_test_macros.hpp> - -import nihil.std; -import nihil.match; - -TEST_CASE("match", "[nihil]") -{ - using namespace nihil; - using namespace std::literals; - - auto v = std::variant<int, std::string>(42); - - auto s = v | match { - [](int) { return "int"s; }, - [](std::string const &) { return "string"s; } - }; - - REQUIRE(s == "int"); - - v = "test"s; - - s = v | match { - [](int) { return "int"s; }, - [](std::string const &) { return "string"s; } - }; - - REQUIRE(s == "string"); -} |
