From 34b10f41aa285e423cccb161342b68ae7275da4b Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sat, 15 Apr 2023 08:43:30 +0200 Subject: Retrieve updatable packages --- src/package.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/package.cpp') diff --git a/src/package.cpp b/src/package.cpp index 0734a5e..9fc99e4 100644 --- a/src/package.cpp +++ b/src/package.cpp @@ -73,4 +73,34 @@ namespace katja } return packages; } + + package_exception::package_exception(const std::string& package_name, const std::string& reason) noexcept + : m_message(package_name) + { + m_message.reserve(m_message.size() + 2 + reason.size()); + m_message += ": " + reason; + } + + const std::string_view package_exception::package_name() const noexcept + { + std::size_t colon_position = m_message.find(':'); + + if (colon_position == std::string::npos) + { + return std::string_view(m_message); + } + else if (colon_position == 0) + { + return std::string_view(""); + } + else + { + return std::string_view(m_message.c_str(), colon_position - 1); + } + } + + const char *package_exception::what() const noexcept + { + return m_message.c_str(); + } } -- cgit v1.2.3