16 virtual Result<void*> LoadLibrary(
const std::filesystem::path& path, LoadFlag flags) = 0;
18 virtual Result<MemAddr> GetSymbol(
void* handle, std::string_view name) = 0;
22 [[nodiscard]]
virtual bool SupportsRuntimePathModification()
const = 0;
23 [[nodiscard]]
virtual bool SupportsLazyBinding()
const = 0;
26 virtual Result<void> AddSearchPath([[maybe_unused]]
const std::filesystem::path& path) {
27 return MakeError(
"Runtime path modification not supported on this platform");
30 virtual Result<void> RemoveSearchPath([[maybe_unused]]
const std::filesystem::path& path) {
31 return MakeError(
"Runtime path modification not supported on this platform");