44 WithBackgroundUpdate(std::chrono::milliseconds interval = std::chrono::milliseconds{ 16 });
45 PlugifyBuilder& WithUpdateCallback(std::function<
void(std::chrono::milliseconds)> callback);
50 PlugifyBuilder& WithAssemblyLoader(std::shared_ptr<IAssemblyLoader> loader);
52 PlugifyBuilder& WithManifestParser(std::shared_ptr<IManifestParser> parser);
53 PlugifyBuilder& WithDependencyResolver(std::shared_ptr<IDependencyResolver> resolver);
54 PlugifyBuilder& WithExtensionLifecycle(std::shared_ptr<IExtensionLifecycle> lifecycle);
62 template <
typename Interface,
typename Implementation>
63 requires std::derived_from<Implementation, Interface>
64 PlugifyBuilder& WithService(std::shared_ptr<Implementation> service) {
65 GetServices().RegisterInstance<Interface>(std::move(service));
71 PLUGIFY_ACCESS :
const ServiceLocator& GetServices()
const noexcept;
72 Result<Config> LoadConfigFromFile(
const std::filesystem::path& path)
const;
74 PLUGIFY_NO_DLL_EXPORT_WARNING(std::unique_ptr<Impl> _impl;)