#ifndef REPO_LENSE_TOOL_INTERFACE_HPP_INCLUDED #define REPO_LENSE_TOOL_INTERFACE_HPP_INCLUDED #include #include #include #pragma once namespace rl { using exit_code = std::int32_t; using arguments = std::span; 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(arguments args) noexcept -> exit_code = 0; }; } // namespace rl #endif // REPO_LENSE_TOOL_INTERFACE_HPP_INCLUDED