using System; using System.Collections.Generic; using System.Linq; namespace BizHawk.Emulation.Common { /// Indicates that a method (or property getter/setter) inherited from a has yet to be implemented. /// /// By convention, calling a method with this attribute should throw a . /// If this attribute is not present on an implementation, it is assumed that the method is implemented and working. /// [AttributeUsage(AttributeTargets.Method | AttributeTargets.Property)] public sealed class FeatureNotImplementedAttribute : Attribute { } /// Indicates that a class intentionally does not inherit from the specified IEmulatorServices, and will never do so. /// /// ISpecializedEmulatorServices that a core doesn't implement should not be listed, as the semantic of only being applicable to some cores is already clear.
/// Any which isn't specified and is also not implemented is assumed to be a work-in-progress. /// These should be implemented as soon as possible, simply throwing a on call, and should be annotated with . ///
[AttributeUsage(AttributeTargets.Class)] public sealed class ServiceNotApplicableAttribute : Attribute { /// TODO neither array nor is the correct collection to be using here, try / instead public ServiceNotApplicableAttribute(Type[] types) { NotApplicableTypes = types?.AsEnumerable() ?? Enumerable.Empty(); } public IEnumerable NotApplicableTypes { get; } } }