4#include <plugify/assembly.hpp>
5#include <plugify/path.hpp>
6#include <plugify/reference_wrapper.hpp>
7#include <plugify_export.h>
9#include <unordered_map>
12 class PlugifyProvider;
15 enum class Severity : uint8_t;
21 using ModuleOpt = std::optional<ModuleRef>;
27 using PluginOpt = std::optional<PluginRef>;
41 void Log(std::string_view msg, Severity severity)
const;
61 bool IsPreferOwnSymbols() const noexcept;
75 bool IsPluginLoaded(std::string_view name, std::optional<int32_t> requiredVersion = {},
bool minimum =
false)
const noexcept;
89 bool IsModuleLoaded(std::string_view name, std::optional<int32_t> requiredVersion = {},
bool minimum =
false)
const noexcept;
115 static_assert(is_ref_v<IPlugifyProvider>);
Interface class for the PlugifyProvider, which is provided to the user and implemented in the core....
bool IsModuleLoaded(std::string_view name, std::optional< int32_t > requiredVersion={}, bool minimum=false) const noexcept
Checks if a language module with the specified name is loaded.
PluginOpt FindPlugin(std::string_view name) const noexcept
Finds a plugin by its name.
ModuleOpt FindModule(std::string_view name) const noexcept
Finds a language module by its name.
std::filesystem::path_view GetBaseDir() const noexcept
Get the base directory of the Plugify system.
void Log(std::string_view msg, Severity severity) const
Log a message with a specified severity level.
A lightweight reference wrapper for objects of type T.