using System; using System.Collections.Generic; using System.Linq; namespace BizHawk.Emulation.Common { /// /// Should be added to any field of an IEmulatorService that is not implemented. /// By Convention it should also throw a NotImplementedException /// Any feature that does not have this attribute is assumed to be implemented /// public class FeatureNotImplementedAttribute : Attribute { } /// /// Should be added to any implementation of IEmulator to document any /// IEmulatorService (that is not an ISpecializedEmulatorService) that /// by design, will not be implemented by the core /// Any service that is unimplemented and not marked with this attribute is /// assumed to be a "TODO" that needs to be done but hasn't been done yet /// [AttributeUsage(AttributeTargets.Class)] public class ServiceNotApplicableAttribute : Attribute { public ServiceNotApplicableAttribute(params Type[] types) { NotApplicableTypes = types?.ToList() ?? new List(); } public IEnumerable NotApplicableTypes { get; private set; } } }