using System.Reflection;

namespace Pilz.Plugins;

public class PluginLoadInfo<TPluginInterface, TPluginRuntimeInfo> where TPluginInterface : class where TPluginRuntimeInfo : PluginRuntimeInfo
{
    internal List<TPluginRuntimeInfo> PluginsInternal { get; } = [];
    public Assembly? Assembly { get; internal set; }
    public PluginLoadStatus Status { get; internal set; }
    public IEnumerable<TPluginRuntimeInfo> Plugins => PluginsInternal.AsReadOnly();
}
