From 034cd404a129103a8dd7747e6bd00ffd5550da93 Mon Sep 17 00:00:00 2001 From: Lexi Winter Date: Mon, 30 Jun 2025 07:51:23 +0100 Subject: refactoring --- nihil.posix/argv.cc | 65 ----------------------------------------------------- 1 file changed, 65 deletions(-) delete mode 100644 nihil.posix/argv.cc (limited to 'nihil.posix/argv.cc') diff --git a/nihil.posix/argv.cc b/nihil.posix/argv.cc deleted file mode 100644 index e6b1389..0000000 --- a/nihil.posix/argv.cc +++ /dev/null @@ -1,65 +0,0 @@ -/* - * This source code is released into the public domain. - */ - -module; - -#include -#include -#include -#include - -module nihil.posix; - -namespace nihil { - -argv::argv() = default; -argv::argv(argv &&) noexcept = default; -auto argv::operator=(this argv &, argv &&) -> argv & = default; - -argv::~argv() -{ - for (auto *arg : m_args) - delete[] arg; -} - -auto argv::data(this argv const &self) -> char const * const * -{ - return self.m_args.data(); -} - -auto argv::data(this argv &self) -> char * const * -{ - return self.m_args.data(); -} - -auto argv::size(this argv const &self) -{ - return self.m_args.size(); -} - -auto argv::begin(this argv const &self) -{ - return self.m_args.begin(); -} - -auto argv::end(this argv const &self) -{ - return self.m_args.end(); -} - - -auto argv::add_arg(this argv &self, std::string_view arg) -> void -{ - // Create a nul-terminated C string. - auto ptr = std::make_unique(arg.size() + 1); - std::ranges::copy(arg, ptr.get()); - ptr[arg.size()] = '\0'; - - // Ensure we won't throw when emplacing the pointer. - self.m_args.reserve(self.m_args.size() + 1); - self.m_args.emplace_back(ptr.release()); -} - -} // namespace nihil - -- cgit v1.2.3