aboutsummaryrefslogtreecommitdiffstats
path: root/nihil.match
diff options
context:
space:
mode:
authorLexi Winter <lexi@le-fay.org>2025-07-02 03:43:39 +0100
committerLexi Winter <lexi@le-fay.org>2025-07-02 03:43:39 +0100
commit06fafff8e9e9c096cc39bde0306caa53ad3a2351 (patch)
treeedfd6a5b08b77bc082e53b7b53a2e5f8dbbc8566 /nihil.match
parent712edacbc75e6dc98c11b3c5f6c52f823c747e2f (diff)
downloadnihil-06fafff8e9e9c096cc39bde0306caa53ad3a2351.tar.gz
nihil-06fafff8e9e9c096cc39bde0306caa53ad3a2351.tar.bz2
move error and match to util
Diffstat (limited to 'nihil.match')
-rw-r--r--nihil.match/CMakeLists.txt22
-rw-r--r--nihil.match/match.ccm18
-rw-r--r--nihil.match/test.cc30
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");
-}