aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt2
-rw-r--r--nihil.cli/command.ccm1
-rw-r--r--nihil.cli/usage_error.ccm2
-rw-r--r--nihil.config/CMakeLists.txt1
-rw-r--r--nihil.config/option.cc1
-rw-r--r--nihil.config/option.ccm2
-rw-r--r--nihil.config/read.ccm1
-rw-r--r--nihil.config/store.cc1
-rw-r--r--nihil.config/store.ccm2
-rw-r--r--nihil.config/write.ccm1
-rw-r--r--nihil.error/CMakeLists.txt27
-rw-r--r--nihil.match/CMakeLists.txt22
-rw-r--r--nihil.posix/CMakeLists.txt2
-rw-r--r--nihil.posix/ensure_dir.ccm6
-rw-r--r--nihil.posix/execl.ccm1
-rw-r--r--nihil.posix/execlp.ccm2
-rw-r--r--nihil.posix/execshell.ccm1
-rw-r--r--nihil.posix/execv.ccm2
-rw-r--r--nihil.posix/execvp.ccm1
-rw-r--r--nihil.posix/fd.ccm1
-rw-r--r--nihil.posix/fd.test.cc2
-rw-r--r--nihil.posix/find_in_path.ccm2
-rw-r--r--nihil.posix/find_in_path.test.cc3
-rw-r--r--nihil.posix/getenv.ccm1
-rw-r--r--nihil.posix/getenv.test.cc2
-rw-r--r--nihil.posix/open.ccm1
-rw-r--r--nihil.posix/open.test.cc2
-rw-r--r--nihil.posix/open_in_path.ccm2
-rw-r--r--nihil.posix/open_in_path.test.cc2
-rw-r--r--nihil.posix/posix.ccm2
-rw-r--r--nihil.posix/process.ccm2
-rw-r--r--nihil.posix/read_file.ccm2
-rw-r--r--nihil.posix/rename.ccm1
-rw-r--r--nihil.posix/stat.test.cc2
-rw-r--r--nihil.posix/tempfile.ccm1
-rw-r--r--nihil.posix/unistd.ccm2
-rw-r--r--nihil.posix/unlink.ccm1
-rw-r--r--nihil.posix/write_file.ccm1
-rw-r--r--nihil.ucl/CMakeLists.txt2
-rw-r--r--nihil.ucl/integer.ccm2
-rw-r--r--nihil.ucl/type.ccm2
-rw-r--r--nihil.util/CMakeLists.txt6
-rw-r--r--nihil.util/error.ccm (renamed from nihil.error/error.ccm)5
-rw-r--r--nihil.util/error.test.cc (renamed from nihil.error/error.test.cc)2
-rw-r--r--nihil.util/match.ccm (renamed from nihil.match/match.ccm)2
-rw-r--r--nihil.util/match.test.cc (renamed from nihil.match/test.cc)4
-rw-r--r--nihil.util/monad.test.cc1
-rw-r--r--nihil.util/nihil.util.ccm3
-rw-r--r--nihil.util/parse_size.ccm2
-rw-r--r--nihil.util/parse_size.test.cc43
-rw-r--r--nihil.util/sys_error.ccm (renamed from nihil.error/sys_error.ccm)4
-rw-r--r--nihil.util/tabulate.ccm3
52 files changed, 63 insertions, 128 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index da623af..84927d8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -64,9 +64,7 @@ endif()
add_subdirectory(nihil.std)
add_subdirectory(nihil.cli)
add_subdirectory(nihil.core)
-add_subdirectory(nihil.error)
add_subdirectory(nihil.generator)
-add_subdirectory(nihil.match)
add_subdirectory(nihil.posix)
add_subdirectory(nihil.util)
diff --git a/nihil.cli/command.ccm b/nihil.cli/command.ccm
index ea52bbf..1bcb13f 100644
--- a/nihil.cli/command.ccm
+++ b/nihil.cli/command.ccm
@@ -12,7 +12,6 @@ export module nihil.cli:command;
import nihil.std;
import nihil.core;
-import nihil.error;
import :usage_error;
namespace nihil {
diff --git a/nihil.cli/usage_error.ccm b/nihil.cli/usage_error.ccm
index 7de178e..8502755 100644
--- a/nihil.cli/usage_error.ccm
+++ b/nihil.cli/usage_error.ccm
@@ -2,7 +2,7 @@
export module nihil.cli:usage_error;
import nihil.std;
-import nihil.error;
+import nihil.util;
namespace nihil {
diff --git a/nihil.config/CMakeLists.txt b/nihil.config/CMakeLists.txt
index 6ed3651..0d8ffee 100644
--- a/nihil.config/CMakeLists.txt
+++ b/nihil.config/CMakeLists.txt
@@ -3,7 +3,6 @@
add_library(nihil.config STATIC)
target_link_libraries(nihil.config PRIVATE
nihil.std
- nihil.error
nihil.generator
nihil.posix
nihil.ucl
diff --git a/nihil.config/option.cc b/nihil.config/option.cc
index acd9d24..5f163ac 100644
--- a/nihil.config/option.cc
+++ b/nihil.config/option.cc
@@ -2,7 +2,6 @@
module nihil.config;
import nihil.std;
-import nihil.error;
import nihil.ucl;
import nihil.util;
diff --git a/nihil.config/option.ccm b/nihil.config/option.ccm
index 0758c1a..8c64653 100644
--- a/nihil.config/option.ccm
+++ b/nihil.config/option.ccm
@@ -2,7 +2,7 @@
export module nihil.config:option;
import nihil.std;
-import nihil.error;
+import nihil.util;
import nihil.ucl;
namespace nihil::config {
diff --git a/nihil.config/read.ccm b/nihil.config/read.ccm
index c326fed..1c1b897 100644
--- a/nihil.config/read.ccm
+++ b/nihil.config/read.ccm
@@ -2,7 +2,6 @@
export module nihil.config:read;
import nihil.std;
-import nihil.error;
import nihil.posix;
import nihil.ucl;
import nihil.util;
diff --git a/nihil.config/store.cc b/nihil.config/store.cc
index d0842ec..ed8de1d 100644
--- a/nihil.config/store.cc
+++ b/nihil.config/store.cc
@@ -2,7 +2,6 @@
module nihil.config;
import nihil.std;
-import nihil.error;
import nihil.generator;
import nihil.util;
diff --git a/nihil.config/store.ccm b/nihil.config/store.ccm
index 0a92ef0..e4229a7 100644
--- a/nihil.config/store.ccm
+++ b/nihil.config/store.ccm
@@ -4,8 +4,8 @@ export module nihil.config:store;
// The configuration store. There should only be one of these.
import nihil.std;
-import nihil.error;
import nihil.generator;
+import nihil.util;
namespace nihil::config {
diff --git a/nihil.config/write.ccm b/nihil.config/write.ccm
index 89b9c93..be2cfd7 100644
--- a/nihil.config/write.ccm
+++ b/nihil.config/write.ccm
@@ -2,7 +2,6 @@
export module nihil.config:write;
import nihil.std;
-import nihil.error;
import nihil.posix;
import nihil.ucl;
import nihil.util;
diff --git a/nihil.error/CMakeLists.txt b/nihil.error/CMakeLists.txt
deleted file mode 100644
index 81c2cd8..0000000
--- a/nihil.error/CMakeLists.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-# This source code is released into the public domain.
-
-add_library(nihil.error STATIC)
-target_link_libraries(nihil.error PRIVATE nihil.std nihil.match)
-target_sources(nihil.error
- PUBLIC FILE_SET modules TYPE CXX_MODULES FILES
- error.ccm
- sys_error.ccm
-)
-
-if(NIHIL_TESTS)
- enable_testing()
-
- add_executable(nihil.error.test
- error.test.cc)
-
- target_link_libraries(nihil.error.test PRIVATE
- nihil.std
- nihil.core
- nihil.error
- Catch2::Catch2WithMain
- )
-
- include(CTest)
- include(Catch)
- catch_discover_tests(nihil.error.test)
-endif()
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.posix/CMakeLists.txt b/nihil.posix/CMakeLists.txt
index a4c174b..3fcf625 100644
--- a/nihil.posix/CMakeLists.txt
+++ b/nihil.posix/CMakeLists.txt
@@ -4,7 +4,6 @@ add_library(nihil.posix STATIC)
target_link_libraries(nihil.posix PRIVATE
nihil.std
nihil.core
- nihil.error
nihil.util
)
@@ -59,7 +58,6 @@ if(NIHIL_TESTS)
target_link_libraries(nihil.posix.test PRIVATE
nihil.std
- nihil.error
nihil.posix
nihil.util
Catch2::Catch2WithMain
diff --git a/nihil.posix/ensure_dir.ccm b/nihil.posix/ensure_dir.ccm
index 8d3e7a8..9ae6d80 100644
--- a/nihil.posix/ensure_dir.ccm
+++ b/nihil.posix/ensure_dir.ccm
@@ -2,13 +2,11 @@
export module nihil.posix:ensure_dir;
import nihil.std;
-import nihil.error;
+import nihil.util;
namespace nihil {
-/*
- * Create the given directory and any parent directories.
- */
+// Create the given directory and any parent directories.
export [[nodiscard]] auto
ensure_dir(std::filesystem::path const &dir) -> std::expected<void, error>
{
diff --git a/nihil.posix/execl.ccm b/nihil.posix/execl.ccm
index 99b9169..e6b809c 100644
--- a/nihil.posix/execl.ccm
+++ b/nihil.posix/execl.ccm
@@ -2,7 +2,6 @@
export module nihil.posix:execl;
import nihil.std;
-import nihil.error;
import :argv;
import :execv;
import :fd;
diff --git a/nihil.posix/execlp.ccm b/nihil.posix/execlp.ccm
index 12f2c24..ba80504 100644
--- a/nihil.posix/execlp.ccm
+++ b/nihil.posix/execlp.ccm
@@ -2,7 +2,7 @@
export module nihil.posix:execlp;
import nihil.std;
-import nihil.error;
+import nihil.util;
import :argv;
import :execvp;
diff --git a/nihil.posix/execshell.ccm b/nihil.posix/execshell.ccm
index e0263e5..9e640c3 100644
--- a/nihil.posix/execshell.ccm
+++ b/nihil.posix/execshell.ccm
@@ -2,7 +2,6 @@
export module nihil.posix:execshell;
import nihil.std;
-import nihil.error;
import :execv;
import :execl;
diff --git a/nihil.posix/execv.ccm b/nihil.posix/execv.ccm
index 3bf5745..2a77326 100644
--- a/nihil.posix/execv.ccm
+++ b/nihil.posix/execv.ccm
@@ -10,8 +10,6 @@ extern char **environ; // NOLINT
export module nihil.posix:execv;
import nihil.std;
-import nihil.error;
-import nihil.match;
import nihil.util;
import :argv;
import :executor;
diff --git a/nihil.posix/execvp.ccm b/nihil.posix/execvp.ccm
index 5b11e7a..0a0106d 100644
--- a/nihil.posix/execvp.ccm
+++ b/nihil.posix/execvp.ccm
@@ -3,7 +3,6 @@ export module nihil.posix:execvp;
import nihil.std;
import nihil.core;
-import nihil.error;
import nihil.util;
import :argv;
import :execv;
diff --git a/nihil.posix/fd.ccm b/nihil.posix/fd.ccm
index c00676d..1de343b 100644
--- a/nihil.posix/fd.ccm
+++ b/nihil.posix/fd.ccm
@@ -7,7 +7,6 @@ module;
export module nihil.posix:fd;
import nihil.std;
-import nihil.error;
import nihil.util;
namespace nihil {
diff --git a/nihil.posix/fd.test.cc b/nihil.posix/fd.test.cc
index 65b2ad3..a0828e5 100644
--- a/nihil.posix/fd.test.cc
+++ b/nihil.posix/fd.test.cc
@@ -6,8 +6,8 @@
#include <catch2/catch_test_macros.hpp>
import nihil.std;
-import nihil.error;
import nihil.posix;
+import nihil.util;
using namespace std::literals;
diff --git a/nihil.posix/find_in_path.ccm b/nihil.posix/find_in_path.ccm
index dabe358..353750b 100644
--- a/nihil.posix/find_in_path.ccm
+++ b/nihil.posix/find_in_path.ccm
@@ -6,7 +6,7 @@ module;
export module nihil.posix:find_in_path;
import nihil.std;
-import nihil.error;
+import nihil.util;
import :fd;
import :getenv;
import :paths;
diff --git a/nihil.posix/find_in_path.test.cc b/nihil.posix/find_in_path.test.cc
index b2f6240..65cbe87 100644
--- a/nihil.posix/find_in_path.test.cc
+++ b/nihil.posix/find_in_path.test.cc
@@ -2,8 +2,9 @@
#include <catch2/catch_test_macros.hpp>
-import nihil.error;
+import nihil.std;
import nihil.posix;
+import nihil.util;
namespace {
diff --git a/nihil.posix/getenv.ccm b/nihil.posix/getenv.ccm
index ddffeb3..f3490a2 100644
--- a/nihil.posix/getenv.ccm
+++ b/nihil.posix/getenv.ccm
@@ -9,7 +9,6 @@ module;
export module nihil.posix:getenv;
import nihil.std;
-import nihil.error;
import nihil.util;
namespace nihil {
diff --git a/nihil.posix/getenv.test.cc b/nihil.posix/getenv.test.cc
index 3ba1d94..83c46dc 100644
--- a/nihil.posix/getenv.test.cc
+++ b/nihil.posix/getenv.test.cc
@@ -5,8 +5,8 @@
#include <catch2/catch_test_macros.hpp>
import nihil.std;
-import nihil.error;
import nihil.posix;
+import nihil.util;
namespace {
TEST_CASE("getenv: existing value", "[getenv]")
diff --git a/nihil.posix/open.ccm b/nihil.posix/open.ccm
index ab3d6e1..a2fc9f4 100644
--- a/nihil.posix/open.ccm
+++ b/nihil.posix/open.ccm
@@ -7,7 +7,6 @@ module;
export module nihil.posix:open;
import nihil.std;
-import nihil.error;
import nihil.util;
import :fd;
diff --git a/nihil.posix/open.test.cc b/nihil.posix/open.test.cc
index e49f4c4..932c03b 100644
--- a/nihil.posix/open.test.cc
+++ b/nihil.posix/open.test.cc
@@ -3,8 +3,8 @@
#include <catch2/catch_test_macros.hpp>
import nihil.std;
-import nihil.error;
import nihil.posix;
+import nihil.util;
namespace {
diff --git a/nihil.posix/open_in_path.ccm b/nihil.posix/open_in_path.ccm
index 0733c8d..577ab9d 100644
--- a/nihil.posix/open_in_path.ccm
+++ b/nihil.posix/open_in_path.ccm
@@ -2,7 +2,7 @@
export module nihil.posix:open_in_path;
import nihil.std;
-import nihil.error;
+import nihil.util;
import :fd;
import :getenv;
import :open;
diff --git a/nihil.posix/open_in_path.test.cc b/nihil.posix/open_in_path.test.cc
index ebd1405..ace8f1e 100644
--- a/nihil.posix/open_in_path.test.cc
+++ b/nihil.posix/open_in_path.test.cc
@@ -3,8 +3,8 @@
#include <catch2/catch_test_macros.hpp>
import nihil.std;
-import nihil.error;
import nihil.posix;
+import nihil.util;
namespace {
diff --git a/nihil.posix/posix.ccm b/nihil.posix/posix.ccm
index c80724d..a6c675b 100644
--- a/nihil.posix/posix.ccm
+++ b/nihil.posix/posix.ccm
@@ -3,8 +3,6 @@ module;
export module nihil.posix;
-import nihil.error;
-
export import :argv;
export import :ensure_dir;
export import :execl;
diff --git a/nihil.posix/process.ccm b/nihil.posix/process.ccm
index 9fbf34c..e990f62 100644
--- a/nihil.posix/process.ccm
+++ b/nihil.posix/process.ccm
@@ -6,7 +6,7 @@ module;
export module nihil.posix:process;
import nihil.std;
-import nihil.error;
+import nihil.util;
namespace nihil {
diff --git a/nihil.posix/read_file.ccm b/nihil.posix/read_file.ccm
index 337d0e4..f7d06cb 100644
--- a/nihil.posix/read_file.ccm
+++ b/nihil.posix/read_file.ccm
@@ -1,7 +1,7 @@
// This source code is released into the public domain.
export module nihil.posix:read_file;
-import nihil.error;
+import nihil.std;
import nihil.util;
import :fd;
import :open;
diff --git a/nihil.posix/rename.ccm b/nihil.posix/rename.ccm
index c46005e..6b640b1 100644
--- a/nihil.posix/rename.ccm
+++ b/nihil.posix/rename.ccm
@@ -2,7 +2,6 @@
export module nihil.posix:rename;
import nihil.std;
-import nihil.error;
import nihil.util;
namespace nihil {
diff --git a/nihil.posix/stat.test.cc b/nihil.posix/stat.test.cc
index 535273b..cb199f6 100644
--- a/nihil.posix/stat.test.cc
+++ b/nihil.posix/stat.test.cc
@@ -1,8 +1,8 @@
// This source code is released into the public domain.
import nihil.std;
-import nihil.error;
import nihil.posix;
+import nihil.util;
#include <sys/stat.h>
diff --git a/nihil.posix/tempfile.ccm b/nihil.posix/tempfile.ccm
index a4d3756..15edccb 100644
--- a/nihil.posix/tempfile.ccm
+++ b/nihil.posix/tempfile.ccm
@@ -2,7 +2,6 @@
export module nihil.posix:tempfile;
import nihil.std;
-import nihil.error;
import nihil.util;
import :fd;
import :getenv;
diff --git a/nihil.posix/unistd.ccm b/nihil.posix/unistd.ccm
index 14c19ee..65cd015 100644
--- a/nihil.posix/unistd.ccm
+++ b/nihil.posix/unistd.ccm
@@ -6,7 +6,7 @@ module;
export module nihil.posix:unistd;
import nihil.std;
-import nihil.error;
+import nihil.util;
// Symbols from unistd.h that might be useful.
diff --git a/nihil.posix/unlink.ccm b/nihil.posix/unlink.ccm
index d6c47cd..f2f5faa 100644
--- a/nihil.posix/unlink.ccm
+++ b/nihil.posix/unlink.ccm
@@ -8,7 +8,6 @@ export module nihil.posix:unlink;
// unlink: simple wrapper around ::unlink()
import nihil.std;
-import nihil.error;
import nihil.util;
namespace nihil {
diff --git a/nihil.posix/write_file.ccm b/nihil.posix/write_file.ccm
index e706274..471ef85 100644
--- a/nihil.posix/write_file.ccm
+++ b/nihil.posix/write_file.ccm
@@ -2,7 +2,6 @@
export module nihil.posix:write_file;
import nihil.std;
-import nihil.error;
import nihil.util;
import :fd;
import :open;
diff --git a/nihil.ucl/CMakeLists.txt b/nihil.ucl/CMakeLists.txt
index f0e7ec0..a4d69e6 100644
--- a/nihil.ucl/CMakeLists.txt
+++ b/nihil.ucl/CMakeLists.txt
@@ -7,7 +7,6 @@ target_link_libraries(nihil.ucl PRIVATE
nihil.std
nihil.core
nihil.util
- nihil.error
)
target_sources(nihil.ucl
@@ -47,6 +46,7 @@ if(NIHIL_TESTS)
target_link_libraries(nihil.ucl.test PRIVATE
nihil.std
+ nihil.util
nihil.ucl
Catch2::Catch2WithMain)
diff --git a/nihil.ucl/integer.ccm b/nihil.ucl/integer.ccm
index eb7fa6b..e3cf98d 100644
--- a/nihil.ucl/integer.ccm
+++ b/nihil.ucl/integer.ccm
@@ -7,7 +7,7 @@ export module nihil.ucl:integer;
import nihil.std;
import nihil.core;
-import nihil.error;
+import nihil.util;
import :object;
import :type;
diff --git a/nihil.ucl/type.ccm b/nihil.ucl/type.ccm
index 476546a..e7843d2 100644
--- a/nihil.ucl/type.ccm
+++ b/nihil.ucl/type.ccm
@@ -6,7 +6,7 @@ module;
export module nihil.ucl:type;
import nihil.std;
-import nihil.error;
+import nihil.util;
namespace nihil::ucl {
diff --git a/nihil.util/CMakeLists.txt b/nihil.util/CMakeLists.txt
index 486a082..30a33b3 100644
--- a/nihil.util/CMakeLists.txt
+++ b/nihil.util/CMakeLists.txt
@@ -5,7 +5,6 @@ add_library(nihil.util STATIC)
target_link_libraries(nihil.util PRIVATE
nihil.std
nihil.core
- nihil.error
)
target_sources(nihil.util
@@ -15,13 +14,16 @@ target_sources(nihil.util
capture_stream.ccm
construct.ccm
ctype.ccm
+ error.ccm
flagset.ccm
guard.ccm
+ match.ccm
monad.ccm
parse_size.ccm
next_word.ccm
save_errno.ccm
skipws.ccm
+ sys_error.ccm
tabulate.ccm
uuid.ccm
)
@@ -32,8 +34,10 @@ if(NIHIL_TESTS)
add_executable(nihil.util.test
capture_stream.test.cc
ctype.test.cc
+ error.test.cc
flagset.test.cc
guard.test.cc
+ match.test.cc
monad.test.cc
parse_size.test.cc
next_word.test.cc
diff --git a/nihil.error/error.ccm b/nihil.util/error.ccm
index 833f7f1..fd3aac9 100644
--- a/nihil.error/error.ccm
+++ b/nihil.util/error.ccm
@@ -1,5 +1,5 @@
// This source code is released into the public domain.
-export module nihil.error;
+export module nihil.util:error;
// error: a type representing an error.
//
@@ -23,9 +23,8 @@ export module nihil.error;
// error will make it easier to distinguish errors when catching them.
import nihil.std;
-import nihil.match;
-export import :sys_error;
+import :match;
namespace nihil {
diff --git a/nihil.error/error.test.cc b/nihil.util/error.test.cc
index db6c773..f4ec1ee 100644
--- a/nihil.error/error.test.cc
+++ b/nihil.util/error.test.cc
@@ -4,7 +4,7 @@
import nihil.std;
import nihil.core;
-import nihil.error;
+import nihil.util;
namespace {
inline constexpr auto *test_tags = "[nihil][nihil.error]";
diff --git a/nihil.match/match.ccm b/nihil.util/match.ccm
index 03730bb..b72416a 100644
--- a/nihil.match/match.ccm
+++ b/nihil.util/match.ccm
@@ -1,5 +1,5 @@
// This source code is released into the public domain.
-export module nihil.match;
+export module nihil.util:match;
import nihil.std;
diff --git a/nihil.match/test.cc b/nihil.util/match.test.cc
index 974a58a..6cc0e27 100644
--- a/nihil.match/test.cc
+++ b/nihil.util/match.test.cc
@@ -3,8 +3,9 @@
#include <catch2/catch_test_macros.hpp>
import nihil.std;
-import nihil.match;
+import nihil.util;
+namespace {
TEST_CASE("match", "[nihil]")
{
using namespace nihil;
@@ -28,3 +29,4 @@ TEST_CASE("match", "[nihil]")
REQUIRE(s == "string");
}
+} // anonymous namespace
diff --git a/nihil.util/monad.test.cc b/nihil.util/monad.test.cc
index bc9e406..7f39fca 100644
--- a/nihil.util/monad.test.cc
+++ b/nihil.util/monad.test.cc
@@ -3,7 +3,6 @@
#include <catch2/catch_test_macros.hpp>
import nihil.std;
-import nihil.error;
import nihil.util;
namespace {
diff --git a/nihil.util/nihil.util.ccm b/nihil.util/nihil.util.ccm
index 9e4795b..49e5687 100644
--- a/nihil.util/nihil.util.ccm
+++ b/nihil.util/nihil.util.ccm
@@ -4,12 +4,15 @@ export module nihil.util;
export import :capture_stream;
export import :construct;
export import :ctype;
+export import :error;
export import :flagset;
export import :guard;
+export import :match;
export import :monad;
export import :parse_size;
export import :next_word;
export import :save_errno;
export import :skipws;
+export import :sys_error;
export import :tabulate;
export import :uuid;
diff --git a/nihil.util/parse_size.ccm b/nihil.util/parse_size.ccm
index 6219323..51bfb4f 100644
--- a/nihil.util/parse_size.ccm
+++ b/nihil.util/parse_size.ccm
@@ -3,9 +3,9 @@ export module nihil.util:parse_size;
import nihil.std;
import nihil.core;
-import nihil.error;
import :ctype;
+import :error;
import :monad;
namespace nihil {
diff --git a/nihil.util/parse_size.test.cc b/nihil.util/parse_size.test.cc
index d79912a..ee97996 100644
--- a/nihil.util/parse_size.test.cc
+++ b/nihil.util/parse_size.test.cc
@@ -4,9 +4,9 @@
import nihil.std;
import nihil.core;
-import nihil.error;
import nihil.util;
+namespace {
TEST_CASE("parse_size: empty value", "[nihil]")
{
using namespace nihil;
@@ -20,40 +20,40 @@ TEST_CASE("parse_size: basic", "[nihil]")
{
using namespace nihil;
- SECTION("bare number") {
+ SECTION ("bare number") {
auto n = parse_size<std::uint64_t>("1024").value();
REQUIRE(n == 1024);
}
- SECTION("max value, unsigned") {
+ SECTION ("max value, unsigned") {
auto n = parse_size<std::uint16_t>("65535").value();
REQUIRE(n == 65535);
}
- SECTION("max value, signed") {
+ SECTION ("max value, signed") {
auto n = parse_size<std::uint16_t>("32767").value();
REQUIRE(n == 32767);
}
- SECTION("overflow by 1, unsigned") {
+ SECTION ("overflow by 1, unsigned") {
auto n = parse_size<std::uint16_t>("65536");
REQUIRE(!n);
REQUIRE(n.error() == std::errc::result_out_of_range);
}
- SECTION("overflow by 1, signed") {
+ SECTION ("overflow by 1, signed") {
auto n = parse_size<std::int16_t>("32768");
REQUIRE(!n);
REQUIRE(n.error() == std::errc::result_out_of_range);
}
- SECTION("overflow by many, unsigned") {
+ SECTION ("overflow by many, unsigned") {
auto n = parse_size<std::uint16_t>("100000");
REQUIRE(!n);
REQUIRE(n.error() == std::errc::result_out_of_range);
}
- SECTION("overflow by many, signed") {
+ SECTION ("overflow by many, signed") {
auto n = parse_size<std::int16_t>("100000");
REQUIRE(!n);
REQUIRE(n.error() == std::errc::result_out_of_range);
@@ -79,27 +79,27 @@ TEST_CASE("parse_size: multipliers", "[nihil]")
auto sf = static_cast<std::uint64_t>(4);
- SECTION("k") {
+ SECTION ("k") {
auto n = parse_size<std::uint64_t>("4k").value();
REQUIRE(n == sf * 1024);
}
- SECTION("m") {
+ SECTION ("m") {
auto n = parse_size<std::uint64_t>("4m").value();
REQUIRE(n == sf * 1024 * 1024);
}
- SECTION("g") {
+ SECTION ("g") {
auto n = parse_size<std::uint64_t>("4g").value();
REQUIRE(n == sf * 1024 * 1024 * 1024);
}
- SECTION("t") {
+ SECTION ("t") {
auto n = parse_size<std::uint64_t>("4t").value();
REQUIRE(n == sf * 1024 * 1024 * 1024 * 1024);
}
- SECTION("p") {
+ SECTION ("p") {
auto n = parse_size<std::uint64_t>("4p").value();
REQUIRE(n == sf * 1024 * 1024 * 1024 * 1024 * 1024);
}
@@ -109,13 +109,13 @@ TEST_CASE("parse_size: multiplier overflow", "[nihil]")
{
using namespace nihil;
- SECTION("signed") {
+ SECTION ("signed") {
auto n = parse_size<std::uint16_t>("64k");
REQUIRE(!n);
REQUIRE(n.error() == std::errc::result_out_of_range);
}
- SECTION("unsigned") {
+ SECTION ("unsigned") {
auto n = parse_size<std::int16_t>("32k");
REQUIRE(!n);
REQUIRE(n.error() == std::errc::result_out_of_range);
@@ -126,7 +126,7 @@ TEST_CASE("parse_size: wide", "[nihil]")
{
using namespace nihil;
- SECTION("bare number") {
+ SECTION ("bare number") {
auto n = parse_size<std::uint64_t>(L"1024").value();
REQUIRE(n == 1024);
}
@@ -138,28 +138,29 @@ TEST_CASE("parse_size: wide multipliers", "[nihil]")
auto sf = static_cast<std::uint64_t>(4);
- SECTION("k") {
+ SECTION ("k") {
auto n = parse_size<std::uint64_t>(L"4k").value();
REQUIRE(n == sf * 1024);
}
- SECTION("m") {
+ SECTION ("m") {
auto n = parse_size<std::uint64_t>(L"4m").value();
REQUIRE(n == sf * 1024 * 1024);
}
- SECTION("g") {
+ SECTION ("g") {
auto n = parse_size<std::uint64_t>(L"4g").value();
REQUIRE(n == sf * 1024 * 1024 * 1024);
}
- SECTION("t") {
+ SECTION ("t") {
auto n = parse_size<std::uint64_t>(L"4t").value();
REQUIRE(n == sf * 1024 * 1024 * 1024 * 1024);
}
- SECTION("p") {
+ SECTION ("p") {
auto n = parse_size<std::uint64_t>(L"4p").value();
REQUIRE(n == sf * 1024 * 1024 * 1024 * 1024 * 1024);
}
}
+} // anonymous namespace
diff --git a/nihil.error/sys_error.ccm b/nihil.util/sys_error.ccm
index 102f4c5..a39552e 100644
--- a/nihil.error/sys_error.ccm
+++ b/nihil.util/sys_error.ccm
@@ -3,7 +3,7 @@ module;
#include <cerrno>
-export module nihil.error:sys_error;
+export module nihil.util:sys_error;
import nihil.std;
@@ -12,7 +12,7 @@ namespace nihil {
// Allow access to errno without having to include <cerrno>.
export [[nodiscard]] auto sys_error() -> std::errc
{
- return static_cast<std::errc>(errno);
+ return static_cast<std::errc>(errno); // NOLINT
}
} // namespace nihil
diff --git a/nihil.util/tabulate.ccm b/nihil.util/tabulate.ccm
index 8f5c22e..762e2a3 100644
--- a/nihil.util/tabulate.ccm
+++ b/nihil.util/tabulate.ccm
@@ -2,8 +2,9 @@
export module nihil.util:tabulate;
import nihil.std;
-import nihil.error;
+
import :ctype;
+import :error;
namespace nihil {