#ifndef REPO_LENSE_TOOL_INTERFACE_HPP_INCLUDED #define REPO_LENSE_TOOL_INTERFACE_HPP_INCLUDED #include #include #pragma once namespace rl { using exit_code = std::int32_t; class IRepoLensTool { public: IRepoLensTool() noexcept = default; virtual ~IRepoLensTool() noexcept = default; IRepoLensTool(const IRepoLensTool&) noexcept = delete; IRepoLensTool(IRepoLensTool&&) noexcept = delete; auto operator=(const IRepoLensTool&) noexcept -> IRepoLensTool& = delete; auto operator=(IRepoLensTool&&) noexcept -> IRepoLensTool& = delete; [[nodiscard]] virtual auto execute(std::string_view arguments) noexcept -> exit_code = 0; }; } #endif //REPO_LENSE_TOOL_INTERFACE_HPP_INCLUDED