using System.Diagnostics.CodeAnalysis; using Moonlight.Frontend.Interfaces; namespace Moonlight.Frontend.Configuration; public class LayoutMiddlewareOptions { public IReadOnlyList Components => InnerComponents; private readonly List InnerComponents = new(); public void Add<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] T>() where T : LayoutMiddlewareBase { InnerComponents.Add(typeof(T)); } public void Insert<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] T>(int index) where T : LayoutMiddlewareBase { InnerComponents.Insert(index, typeof(T)); } public void Remove<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] T>() where T : LayoutMiddlewareBase { InnerComponents.Remove(typeof(T)); } }